Skip to main content
SMS onboarding is in preview and requires environment-specific database and provider validation before deployment. The implementation includes toll-free verification, initial US local-number Brand/Campaign forms, draft resume, supported same-Campaign corrections, and sender enrollment. Optional Brand appeals and extra vetting remain deferred. This guide does not assert that a particular environment has passed acceptance.
An SMS Distribution Ion connects a reserved Twilio number to an Ion Sequence. Owning a number is separate from permission to send SMS. An existing Telecom Voice number may be reused when it is eligible for SMS.

Overview

Open Integrations → SMS to manage numbers and messaging registrations. The Registrations tab brings three different provider resources into one list: Toll-free verification is not Brand registration. A US local number needs both an eligible, approved Brand and an approved Campaign, followed by successful enrollment of that particular number. Campaign membership alone is not confirmation that a carrier has enrolled the number.

Default request loop

  1. Twilio delivers an incoming message to Aion.
  2. Aion records the receipt and routes eligible work through the Distribution’s Sequence.
  3. Before invoking the agent, Aion checks the current number, messaging registration, and credit policy.
  4. The final response is prepared for delivery back into the originating conversation.
  5. Aion checks readiness again before sending, since approval or account availability may have changed.
A registration failure rejects the SMS request with an identifiable A2A error code and a reason. It does not grant permission to send an explanatory SMS from an unapproved number. Accepted input and provider delivery are separate events; a successful agent response does not itself prove external delivery.

Configuration

Choose or reserve a number

  1. Open Integrations → SMS → Numbers.
  2. Reuse an eligible number or select Reserve SMS number and review the displayed reservation charge.
  3. Choose a US local or supported North American toll-free SMS number. Other countries and unknown types are ineligible.
  4. Keep the Distribution inactive while its registration is missing, pending, or rejected.
There is no Aion organization-wide one-number cap. Each additional reservation has its own charges, and Twilio’s inventory, account, and registration limits still apply. Reusing one number for Voice and SMS does not reserve a second copy of it. Releasing that number can affect both channels.

Toll-free SMS verification

This application concerns outbound SMS for one number. Reserving a toll-free number, receiving calls, or using Voice does not establish messaging approval.
  1. On Registrations, select Add registration → Toll-free SMS verification.
  2. Choose the reserved number and open its detail screen.
  3. Select Start verification form or the available resume action.
  4. Complete Twilio’s embedded form inside Aion, then submit it.
  5. Return to the detail screen to track the status recorded by Aion.
Prepare business and contact details, your messaging purpose, representative message samples, and evidence showing how recipients consent. Supply public privacy-policy and terms URLs when the form requires them; Aion does not create or host those materials for you. See Twilio’s toll-free requirements for the provider’s current instructions. Completing or closing the embedded form is not approval. Aion uses backend provider observations, not browser completion callbacks, to determine status. Pending screens refresh periodically while visible and when you return. Aion also checks open toll-free, Brand and Campaign registrations periodically to recover missed status events. These status reads do not create applications or charges, and do not guarantee instant visibility or review deadlines. If Aion cannot confirm submission, use Retry submission recording or Refresh status. That warning does not mean Twilio rejected the application. Expired form sessions can be reopened with fresh temporary credentials. Rejected applications are editable only when the provider allows it; a correction deadline may apply.

Business registration (Brand)

A Brand represents the business sending messages. It belongs to the organization’s Twilio account scope, not to an individual number. An Aion organization is not limited to one Brand; provide the business information Twilio requires for each registration.
  1. Select Add registration → Business registration (Brand) → Continue to Brand setup.
  2. Enter a display name and choose Standard business or Sole Proprietor.
  3. Select Start registration form, then complete Twilio’s embedded questionnaire.
  4. Return to the retained registration to inspect business and identity status separately.
Opening the setup page does not submit an application. The explicit Start action opens the provider session after authorization and credit checks. Existing unsubmitted drafts offer Resume registration form without starting a new application. A browser submission or completion callback is not approval. If a retained Brand or Campaign draft says its initialization is unconfirmed, contact support before starting another form. An interrupted initialization may have created a provider inquiry whose identifier Aion did not retain. The periodic status monitor cannot safely recreate that resource. Support must investigate and recover the existing correlation, or establish that no resource was created, before another attempt. Standard and Low-Volume Standard registrations cover applicable businesses with tax identifiers. Sole Proprietor registration is a variant of the Brand flow for eligible individuals without one, not a fourth registration program. It includes mobile identity confirmation using an eligible personal mobile number, not a Twilio-provisioned number. A Sole Proprietor Brand supports one Campaign, which supports one sender. Choose the classification that matches the provider’s eligibility rules; do not select Sole Proprietor simply to avoid business verification. Brand approval and identity verification are separate prerequisites. Follow the form’s required identity action before continuing to Campaign registration. See Twilio’s business registration guide and Sole Proprietor onboarding.

Campaign registration

A Campaign describes a messaging use case under an approved Brand. Prepare a use-case description, sample messages, the opt-in process, and required public policy links. A Standard Campaign may serve multiple enrolled numbers. Sole Proprietor Campaigns allow one sender. One number can belong to only one Campaign at a time, so changing its assignment must not be treated as a second simultaneous membership. Select Add registration → Campaign registration → Continue to Campaign setup, choose an approved Brand with completed identity verification, enter a display name, then select Start registration form. The server rechecks the prerequisites. After approval, use Add number on the Campaign detail screen to associate one eligible reserved number at a time. This reuses the existing number; it does not reserve another one. After Campaign approval, each number must complete enrollment. Replacing a sender can involve removal from the old Campaign and new enrollment; do not assume that an association change instantly enables sending. Remove the old association and wait for deregistration before assigning the number elsewhere. Aion requires carrier enrollment events; Messaging Service membership is not enrollment proof. Periodic Brand/Campaign reads cannot recover a missing number-enrollment event because an authoritative carrier-status lookup has not been verified. Removing a number, deleting its Distribution, or leaving a Campaign empty is not the same as canceling the Campaign. Delete Campaign is a separate action with a confirmation explaining the affected numbers and sending entitlement. Acceptance queues durable work; it does not mean the provider already deleted the Campaign. Empty Campaigns can be retained for reuse and can continue incurring recurring fees until provider cancellation succeeds. This action does not delete the Brand, release phone numbers or close the organization.

Correct a rejected Campaign

The detail screen shows provider review notes, individual error codes, explanations, and affected fields when supplied. These explanations are also retained in the Campaign’s document history. If the rejection permits a supported field correction, a billing manager can select Correct and resubmit Campaign to reopen the existing registration. Aion rechecks the current provider state before opening the form; submission still requires provider review. Aion currently assumes no additional vetting fee for correcting the same Campaign. Its original registration fee is not waived. Creating a replacement Campaign is a separate application that can incur new fees. Unknown, prohibited, or unsupported rejection reasons do not unlock correction automatically; follow the explanation and contact support. Optional Brand appeals and extra vetting are not available here; they may need manual support or a future workflow.

Activate a Distribution

In Composer, select the SMS Distribution Ion and open Identity. Choose the eligible reserved number or reserve a new one. Follow Manage SMS registration to the form’s detail page; the editor does not open a second embed. The selection identifies the number’s service identity, not its reservation record. Once the number is ready, open Info, activate the Distribution, and sync the Project. Missing, pending, rejected, or unavailable registrations block activation and outbound replies. An inactive Distribution can retain an unapproved number while onboarding proceeds. Losing approval does not prevent deactivation. Use Refresh readiness after an external status change. If previously saved validation errors remain, explicitly sync the Project to revalidate it, even if there are no pending changes. Sync also submits any staged changes, so review those first. Do not replace or reselect the number merely to bypass an error.

Permissions and notification contact

Organization read permission allows viewing registration progress. Organization billing-management permission is required for provisioning, starting/resuming forms, changing sender associations and deleting Campaigns. The authorized logged-in user’s email is used when the provider initializer accepts a notification contact; it does not create a separate organization contact setting.

Fees and retained Campaigns

Aion passes provider charges to the owning organization. Number reservation and holding charges are separate from message/carrier usage and local-number registration costs. Review the price displayed before confirming a reservation. SMS usage is attributed to its originating Distribution and agent when that association is known. Registration forms open directly from their detail/setup screen; there is no intermediate Aion pricing-consent modal. A separate pricing-catalog tab is planned and is not part of this preview. This does not waive charges or bypass credit checks. A provider can charge for an unsuccessful application or a repeated billable attempt. Unverified paid resubmission paths remain unavailable; supported same-Campaign corrections follow the policy above. Amounts and rules can change; see Twilio’s A2P pricing. Suspending message traffic does not itself cancel recurring Campaign charges. Retaining an empty Campaign can still incur fees; removing its last number is not a cancellation request. Under Aion’s provisional UTC calendar, the first approval covers that calendar month. Each subsequent month incurs one subscription charge on the first UTC day while the Campaign remains billable, regardless of its number count. For example, approval on September 30 can be followed by renewal on October 1. This is a working assumption, not a provider-confirmed billing interval or a promise of 30 days of service. Aion uses the retained registration fee schedule and markup, attributes the charge to the owning organization and Campaign, and records each month once through its ordinary usage billing. Delayed processing can capture missed months; replayed events do not create another initial fee. Confirmed cancellation bounds future periods, but failed cancellation or exhausted credits alone does not erase charges already incurred. These calculated fees are not itemized Twilio invoices.

Month-end Campaign cancellation

Aion uses first-of-month renewal in UTC as a working assumption, not as a verified Twilio billing contract. This is not a provider-reported expiry date or a guarantee of service through a paid period. Actual charge dates can differ, and cancellation can end service before previously paid time has elapsed. This policy does not promise a refund or protection against every subsequent charge.
On the last UTC calendar day of each month, Aion checks retained Campaigns for organizations whose credit policy is Exhausted or Suspended. This includes Campaigns with no enrolled numbers. Healthy or merely low-credit organizations are not eligible. Cancellation may occur at any point during that day, not just immediately before midnight, leaving time for ordinary retries. Before a deletion attempt, Aion checks the current credit policy and the exact Campaign again. It does not initiate a new automated deletion after that month’s window closes. An explicit billing-manager deletion does not wait for month end or require exhausted credits. Confirmation of an earlier request can still finish afterward. Provider rejection, restrictions, or an unavailable service can prevent cancellation; a failed attempt does not mean recurring fees stopped. See Twilio’s Campaign API and its compliance-suspension restriction. This closes the Campaign registration, not the Aion organization or Twilio subaccount. It does not delete the Brand or release phone numbers. Deletion is not a reversible pause. Restoring credits afterward does not restore the registration automatically; a new paid application and approval may be necessary.

Retained closure history

Open a Campaign from Integrations → SMS → Registrations to see its current state and the 50 most recent accepted document versions. Earlier versions remain in the retained history. Aion records the cancellation reason, observed credit policy, assumed renewal boundary, decision timestamps, and safe failure or skip codes. The assumed renewal boundary and confirmed closure time are different values. A requested or failed operation is never shown as a confirmed closure. The registration and its prior versions remain visible after closure, providing a history of what changed and why rather than removing the local record.

Message mapping

Incoming SMS/MMS is normalized into the shared A2A messaging contract; final agent output is converted to a reply using the recorded conversation target. Frameworks should use the shared Distribution/Messaging contract, rather than provider account IDs or registration tokens. Registration status is a delivery prerequisite, not an extra agent-response payload schema.

Features

This guide covers number entitlement, registration, and response readiness. It does not promise chat-style streaming, reactions, cards, or transcription. SMS, attachment metadata, accessible MMS content, and voice transcription are distinct capabilities; see Media and attachments before assuming that support for one implies another.