Back to all integrations
Telephony

Telephony and Number Provisioning

Buying or porting numbers, registering for A2P messaging, and routing calls and texts through AppBO.

On this page
What it connectsHow to connect itWhat data movesWorked exampleLimits and gotchas
Need this wired up?

Bring your stack to a call and we will connect it, test every field in both directions, and hand it over documented.

Book a call
01

What it connects

On one side sits a carrier network: real phone numbers with real regulatory obligations, reached through a communications provider that the platform either resells or lets you connect directly. That provider holds the number inventory, the messaging services or sender pools that numbers belong to, the registration records that carriers check before accepting application-to-person traffic, and the call-control layer that decides what happens when someone dials. On the AppBO side sit the conversation inbox, the calling and texting features on a contact record, call workflows and IVR menus, recording and voicemail, and the automations that fire on an inbound message or a missed call.

You wire them together because a CRM without a phone channel is only half a record. The value is not simply that you can dial from the contact page; it is that every call and text is logged against the person automatically, that a missed call can trigger a text back within seconds, that an inbound text reaches a shared inbox rather than one person's handset, and that reporting on calls sits beside reporting on everything else.

This is the integration with the most external gatekeeping, and that shapes the project plan. Numbers must be purchased or ported. Messaging traffic to cell numbers in several countries must be registered with the carriers before it will deliver reliably, which takes real elapsed time and requires accurate business details. Call recording carries consent obligations that vary by jurisdiction. None of these are platform settings; they are compliance steps the platform exposes, and the integration is not finished until they are done.

02

How to connect it

  1. Gather the business identity details first, exactly as they appear on official records: legal entity name, registration or tax identifier, registered address, website, and an authorized contact. Carrier registration is checked against these, and a mismatch is the single commonest cause of rejection and weeks of delay.
  2. Decide whether to use the platform's bundled telephony or connect your own provider account. Bundled is quicker and billed through the platform; your own account gives you direct access to the provider console, logs and number inventory, which matters when something needs debugging at the carrier level.
  3. If connecting your own provider, create the account, complete its identity verification, and generate API credentials. Enter them in the sub-account's phone settings and confirm the platform reports the connection as active.
  4. Decide the number plan before buying anything: how many numbers, in which area codes or regions, which are used for calling, which for messaging, and whether any are reserved for a specific campaign so its reputation stays separate.
  5. Purchase numbers through the platform's number marketplace, choosing capability deliberately (voice, SMS, MMS) because not every number in every region supports all three. Check the capability flags before buying rather than afterwards.
  6. For an existing business number, start a port instead of buying. Submit a letter of authorization, a recent bill showing the account holder and service address, and the exact account details held by the losing carrier. Keep the old service active until the port completes; canceling early strands the number.
  7. Submit the messaging registration required in your market. In the United States this is brand and campaign registration for 10DLC, where you declare the business, the use case, sample messages and the opt-in method; other countries have their own regimes, including sender-ID registration. Submit the real sample messages and the real opt-in wording, because reviewers compare them to your live traffic.
  8. Assign registered numbers to the messaging service or sender pool the registration covers. An unassigned number sends as unregistered traffic, which is filtered or surcharged.
  9. Publish the opt-in evidence. The form, landing page or checkout that collects consent must show the disclosure language, and you should keep a screenshot or URL, because carriers ask for it.
  10. Configure voice routing: which number rings which user or ring group, the ring order and timeout, what happens on no answer, voicemail greeting and transcription, and business-hours versus after-hours behavior.
  11. Build the IVR or call menu if you need one, keeping the tree shallow, and verify every branch including the fall-through when a caller presses nothing.
  12. Set caller ID. Configure the outbound caller ID name where your market supports it, and make sure the number people see is one that reaches you when they call it back.
  13. Decide and configure call recording, with the announcement or consent prompt your jurisdiction requires. Two-party consent regions need the announcement before the conversation, not in a terms page.
  14. Configure messaging compliance: an opt-out keyword handler that writes back to the contact's messaging status, the required identification of the sender in the first message of a conversation, and quiet hours if your market mandates them.
  15. Verify inbound calling end to end: call the number from an outside phone, confirm it rings the right user, confirm the call appears on the contact record, and confirm voicemail and transcription work when nobody answers.
  16. Verify messaging both ways to a real handset on a major mobile network, then test the opt-out keyword and confirm the contact's status changed and that further sends are blocked.
  17. Verify the automations: missed-call text-back, inbound-message notification, and call-outcome workflows. Then document which number does what, and who to contact at the provider when a port or registration needs chasing.
03

What data moves

Platform to the carrier provider

  • Outbound call requests: the from-number, the to-number, and the call-control instructions that connect, record, play a greeting or route to a menu.
  • Outbound messages: from-number or sender pool, destination, body text, and media for picture messaging.
  • Number purchase, release and configuration requests, including which webhook receives inbound events for each number.
  • Registration submissions where the platform brokers them: brand and campaign details, use case, sample messages and opt-in description.
  • Port requests with the supporting documents.
  • Recording and transcription instructions per call.

The carrier provider to the platform

  • Inbound call events, with caller number, called number and timestamps, which create or attach to a contact and open a conversation.
  • Call progress and outcome: answered, no answer, busy, failed, duration, and who answered in a ring group.
  • Recording files and transcriptions, attached to the call on the contact record.
  • Inbound messages and media, matched to a contact by number.
  • Message delivery receipts: sent, delivered, undelivered, failed, with the carrier error code that explains why.
  • Opt-out signals from standard keywords, and carrier-level blocks.
  • Registration and port status changes.

What does not move

  • Call history from a previous phone system. Nothing backfills; a port moves the number, not its logs.
  • Voicemails left on an old system, and greetings recorded there.
  • Carrier-level reputation or registration approval for traffic you send outside the registered campaign.
  • Contact names. Caller ID lookup, where available, is a provider feature and does not populate CRM fields by itself.
  • Handset-based texts. A message sent from a staff member's own phone never appears in the platform.
  • Consent. A contact who opted in elsewhere is not opted in here unless the record says so; consent state is yours to maintain.
  • Billing detail beyond what the platform surfaces; usage reconciliation stays with the provider account.
04

Worked example

Scenario: a home-services business ports its main line, registers for messaging, and turns on missed-call text-back.

  1. The owner collects the legal entity name, tax identifier and registered address from the incorporation paperwork, and the latest bill from the existing phone provider.
  2. A new local number is purchased in the platform first, as a temporary working line, so nothing depends on the port completing to a deadline.
  3. The port request for the main advertised number is submitted with the letter of authorization and the bill. The losing carrier rejects it once because the service address on the bill is an old one; the owner corrects it and resubmits.
  4. In parallel, brand and campaign registration is submitted for messaging, declaring a customer-care and appointment-reminder use case, with the three sample messages the business actually sends and a link to the booking form that carries the consent checkbox and disclosure text.
  5. The website booking form is updated so the consent language is visible next to the checkbox, and the checkbox is not pre-ticked.
  6. Registration is approved after review, and both numbers are assigned to the approved messaging service so their traffic is recognized as registered.
  7. Voice routing is configured: the main number rings the office handset and the owner's mobile simultaneously for twenty-five seconds, then falls to voicemail with transcription enabled.
  8. A recording announcement is enabled before the connection, because the business operates in a region requiring all-party consent.
  9. The port completes overnight on the agreed date. The old carrier's service is canceled only after a test call confirms the number now rings through the platform.
  10. A missed-call text-back workflow is switched on: when a call to the main number ends unanswered, the platform sends a text from the same number apologizing and offering the booking link.
  11. A customer calls at lunchtime, nobody answers, and twenty seconds later she receives the text. She replies with a question; the message lands in the shared conversation inbox, not on one person's handset.
  12. A team member answers from the inbox, books the job, and the appointment is created against the contact with the whole call-and-text history attached.
  13. The following week a reminder text to another customer fails with a carrier error. The delivery receipt shows the destination is a landline, so the workflow's fallback branch places a call task instead.
  14. A third customer replies with the opt-out keyword. The platform records the opt-out, blocks further messaging to that contact, and the reminder workflow routes her to email only.
05

Limits and gotchas

Rate limiting

Messaging throughput is limited per number and per registered campaign, and the limit depends on the registration tier the carriers granted you, not on your plan with the provider. Voice has concurrency limits too. The symptom is a queue: a blast to a large list drains slowly over hours, which matters when the message is time-sensitive. Check your provider's console and the current carrier guidance for the throughput actually assigned to your campaign rather than assuming a figure, and spread high-volume sends across several registered numbers if you need genuine speed.

Retries and idempotency

Message submission failures are retried, and an ambiguous timeout can produce a double send, which on SMS is far more annoying to a recipient than a duplicate email. Delivery receipts arrive asynchronously and out of order, and the same receipt can arrive twice, so any handler must dedupe on the message identifier and treat the latest status as authoritative rather than the last received. Call webhooks have the same at-least-once character: a workflow triggered by call-ended must tolerate running twice without logging two calls or sending two follow-ups.

Field-mapping traps

Number formatting is the recurring trap. Store and send in full international format; a national-format number imported from a spreadsheet will fail to match a contact, creating a duplicate conversation, and will fail to deliver abroad. Country code assumptions in imports are a frequent cause of messages going to the wrong country entirely. Merge fields in SMS cost characters, so a template that fits in one segment with a short name splits into two with a long one, and multi-segment messages cost and deliver differently. Non-standard characters can switch the whole message to a different encoding and halve the characters per segment.

Duplicate creation

Duplicate contacts come from the same person texting from a number stored in a different format, or calling from a work mobile that is not on the record. Duplicate conversations come from inbound traffic to two different business numbers. Decide which number is the published one, keep the others for specific campaigns, and normalize every number on import and on form submission.

Sandbox versus live

Providers offer test credentials that accept requests without touching the carrier network, which proves your configuration and proves nothing about delivery. Carrier filtering, registration status and handset behavior only show up live. Test to real handsets on more than one mobile network before launch, and note that test-mode numbers cannot be registered, so the registration path has to be walked for real.

Authentication expiry

Provider API credentials can be rotated or revoked, and a suspended provider account (for an unpaid balance, a failed identity check or a compliance complaint) disables voice and messaging at once with no platform-side warning. Registration approvals can also be revoked if your live traffic diverges from the samples you submitted. Monitor delivery rate as a health signal, because a sudden fall is usually a carrier or account problem rather than a content problem.

What commonly breaks

  • Sending before registration is approved, so messages are filtered silently and nobody notices for days.
  • Live message content that no longer resembles the approved samples, risking the campaign's approval.
  • A port canceled or delayed because the losing carrier's records differ by a character from what was submitted.
  • The old phone service canceled before the port completes, losing the number.
  • Messages to landlines, which fail with a carrier error that looks like a platform fault.
  • Call recording enabled without the announcement required in the caller's jurisdiction.
  • A missed-call text-back loop firing on calls from internal staff numbers, or texting a landline repeatedly.
  • Quiet-hours rules ignored, generating complaints that feed back into carrier filtering.
  • Opt-out keywords handled by the carrier but not written back to the contact, so the platform keeps queueing sends that never arrive.
  • One number shared across several sub-accounts or brands, so a complaint about one campaign degrades delivery for all of them.

Connect it with us.

We wire the integration, map the fields, test both directions and hand it over with the SOPs your team needs to run it.

Book a call