Account – Channels – SMS
- Path:
/account/channels/sms(TBD) - Parent:
channels.md
Purpose (business goal)
Section titled “Purpose (business goal)”Connect SMS capabilities for messaging ingestion and outbound replies where permitted.
User roles & permissions
Section titled “User roles & permissions”- Workspace Admin
- Permissions:
channels.connect,sms.manage(TBD)
Reference: Roles & Permissions Model
Layout structure
Section titled “Layout structure”- SMS rows live in the main
/account/channelsroute under theSMStab; this child doc defines SMS-specific behavior for the wizard and connection settings surfaces. - Primary surfaces:
- Add channel wizard -> Step 3
Connect - Add channel wizard -> Step 5
Destination - Connection settings dialog for an existing SMS connection
- Add channel wizard -> Step 3
- SMS-specific UI includes:
- number acquisition / bring-your-own-number controls
- read-only connected number chip after selection
- 10DLC compliance collection for brand and campaign data
- agent assignment through the shared Destination step
Components used
Section titled “Components used”src/app/account/channels/_components/add-channel-wizard.tsxsrc/app/account/channels/_components/connection-settings-dialog.tsxsrc/app/account/channels/_components/sms-compliance-forms.tsx- shared shadcn primitives:
Tabs,Select,Input,Textarea,Checkbox,Accordion
States
Section titled “States”- Empty: no SMS numbers configured
- Loading: fetch number inventory / requests or persist compliance changes
- Error: provisioning failure / compliance restrictions
- Complete: number connected, assigned to a workspace / KB / agent, and compliance data may be present on the connection
Business logic (high-level)
Section titled “Business logic (high-level)”- SMS number lifecycle interacts with SMS Requests under Settings.
- SMS is an agent-managed channel family. Users do not directly edit the effective KB on the SMS connection; the KB is resolved from the assigned agent.
- In the Channels table, SMS rows use the shared phone table pattern:
- sortable columns:
Phone number,Workspace,Knowledge base - editable
Agentselector Activeswitch- row actions for edit / delete, plus
Assign in Agentswhen no agent is linked yet
- sortable columns:
Wizard flow
Section titled “Wizard flow”- Step 3 - Connect
- Mode tabs:
Get a new numberandUse my number - Country code selector, area code input, and number selector are shown here
- The selected number is carried forward and shown in Destination as a read-only chip
- Mode tabs:
- Step 5 - Destination
- Workspace and Knowledge base are shown using the shared Destination step
- Agent is required for SMS because it is a Chatti Live channel family
10DLC compliance data
Section titled “10DLC compliance data”SMS connections can persist structured compliance data on ChannelConnection.smsCompliance.
- Brand fields
entityverticaldisplayNamecompanyNameregistrationNumberbrandTypecontactPhonecontactEmailwebsiteaddresscountrystatecityzipCode
- Campaign fields
campaignDescriptionmessageFlowprivacyPolicyUrluseCaseTypemessageSamples(5 entries)optInKeywords,optInMessageoptOutKeywords,optOutMessagehelpKeywords,helpMessagenumberPoolingdirectLendingembeddedLinkembeddedPhoneageGatedContenttermsAndConditions
Interaction rules:
- The campaign section uses accordions so operators can work through the submission progressively.
- Filled accordion sections show completion markers to make long-form progress scannable.
- Compliance edits are persisted via the channels context
setSmsCompliance(id, compliance)and through the setup-status mutationset-sms-compliance. - SMS compliance is edited in the connection settings dialog for existing connections and can also be set during the add-channel wizard flow.
Domain refs:
API dependencies
Section titled “API dependencies”GET /channels/sms/numbersPOST /channels/sms/connect
Enterprise constraints
Section titled “Enterprise constraints”- Regulatory requirements vary by region.
- SMS onboarding must preserve the operator-entered compliance payload and must not imply carrier approval until such approval exists in backend/provider systems.
Edge cases
Section titled “Edge cases”- Number reclaimed/expired by provider
- Existing SMS connection has no
smsComplianceyet -> settings dialog opens with empty brand and campaign defaults - KB cannot be resolved for the connected number -> show degraded state until reassigned through the shared destination/settings flow
Security & compliance considerations
Section titled “Security & compliance considerations”- Treat brand/campaign registration details and contact fields as sensitive operational data.
- Do not expose or log compliance payload values in analytics events.
- Consent, opt-in, opt-out, and help message fields must remain editable because they are part of the documented operator workflow.
Reference: Security & Compliance
Analytics events (if applicable)
Section titled “Analytics events (if applicable)”channel.connected
Reference: Analytics Events (MVP)