Self-service message retry in Modpanel
Jira: BIF-7775 · Epic: BIF-8695
Overview
Enable Tech Support to check for and retry incoming messages that were held while a client's billing was expired, directly through the Modpanel — so a renewed client's dashboard is updated immediately after they pay, without escalating to engineers. Sample case: BIF-7763.
Scope Changes
- Backend — detect held incoming messages for a CID, retry/push them to the client dashboard.
- Frontend — Modpanel entry point (Support & Admin roles) with a Retry action, confirmation, and empty state.
8. User Stories + Acceptance Criteria
| User Story | Importance | Mockup / Technical Notes | Acceptance Criteria |
|---|---|---|---|
| [MSGRETRY-S01] — Retry held messages from Modpanel As a Tech Support agent, I want to check for and retry incoming messages that were held while a client's billing was expired, directly through the Modpanel, so that I can self-service this recurring request without escalating to engineers and the client's dashboard updates immediately after they renew. | Should Have | Restricted to authorized Support & Admin roles. Sample case: BIF-7763. | — Happy Path — • AC-1: Given a renewed CID with held incoming messages, when an authorized Support/Admin agent opens the feature in Modpanel, then the held messages are listed / countable for that CID. • AC-2: Given held messages exist, when the agent clicks Retry / Resend, then those messages are pushed to the client's dashboard. • AC-3: Given a retry completes successfully, when the push finishes, then a clear success notification is shown. — Edge Case — • AC-4: Given a CID with no held messages, when the agent opens the feature, then the system clearly displays "No held messages found." — Guard-rail — • NEG-1: Given a user without the Support or Admin role, when they attempt to access the feature, then it is not available to them. |
Open questions
- What defines "held" — a queue/table of parked inbound messages, or a re-fetch from the provider?
- Any cap or batching on how many messages are retried at once?
- Should retries be logged/audited per agent action?