Help centre

How can we help?

Guides, FAQ, and integration walkthroughs. Search or browse by topic.

← All topics

Twilio

Twilio SMS and voice

Get a real business phone number that can send SMS, receive SMS, take voice calls and log everything back into the CRM.

Before you start

  • A business email that is not a Gmail address if you are in the US. A2P 10DLC registration prefers proper business domains.
  • Your business registration details: legal name, EIN or company number, registered address, website URL. Twilio verifies these against public records.
  • A payment card. Twilio starts you on a trial with a small credit but a card must be on file before you can buy a real number.
  • 15 minutes for the account. Add another 24-72 hours if you are US-based and need A2P 10DLC brand approval before you can send SMS to US numbers.

Step 1: Create the Twilio account

  1. Go to twilio.com/try-twilio.
  2. Sign up with your business email. Verify the email link (goes to spam sometimes).
  3. Verify a mobile phone number via SMS code. This is your own personal number, used only for account security.
  4. On the welcome questionnaire choose: build with code, product SMS and Voice, language PHP. It does not matter what you pick technically, but this affects which onboarding hints Twilio shows you.
  5. Skip the "start with a starter template" prompt. You do not need it.

Step 2: Find your credentials

  1. On the console homepage, scroll down to the Account Info panel.
  2. Copy the Account SID. Starts with AC followed by 32 hex characters.
  3. Click Show next to Auth Token. Copy it. Treat this like a password: anyone with it can send SMS on your bill.

Never share the Auth Token

If you ever paste it into a Slack channel, an email or a support ticket outside this CRM's password field, immediately click Roll auth token in the Twilio console and re-paste the new one.

Step 3: Buy a phone number

  1. In the Twilio console left nav, expand Phone Numbers > Manage > Buy a number.
  2. Set the country. UK numbers are cheaper for UK-to-UK SMS; US numbers are cheaper for US-to-US.
  3. Tick the capabilities you need. For a normal CRM setup: SMS and Voice. Add MMS only if you need to send images.
  4. Optional: search a specific area code. UK 020 costs the same as 0161; US area codes vary.
  5. Click Buy next to a number you like. Costs 1.15 USD per month for a UK number, 1.15 USD for a US local, more for toll-free.

Step 4: Paste credentials into the CRM

  1. In the CRM go to Settings > Integrations.
  2. Scroll to Twilio - SMS and Calling.
  3. Paste the Account SID into the SID field.
  4. Paste the Auth Token into the Auth Token field (it will mask to bullets on save).
  5. Click Load my numbers to the right of the number dropdown. This calls GET /api/twilio_numbers and pulls every number on your Twilio account.
  6. Select the number you just bought from the dropdown.
  7. Click Save company.

Step 5: Wire the webhooks

Webhooks are how Twilio tells the CRM when an SMS arrives, when a call is answered, and when message status changes. Without them, sent messages never show delivery status and inbound SMS is lost.

  1. In the Twilio console go to Phone Numbers > Manage > Active numbers and click your number.
  2. Scroll to Messaging Configuration. Set:
    • A message comes in → Webhook → https://your-crm-domain.com/api/sms.php → HTTP POST
    • Status changeshttps://your-crm-domain.com/api/twilio_status.php → HTTP POST
  3. Scroll to Voice Configuration. Set:
    • A call comes in → Webhook → https://your-crm-domain.com/api/twilio_voice.php → HTTP POST
    Skip this if you are wiring the AI Receptionist - that guide overrides it.
  4. Click Save configuration at the bottom.

Use your actual CRM domain

Replace your-crm-domain.com with the domain in your browser bar right now. The webhook has to be HTTPS and it has to be publicly reachable - Twilio calls it from AWS us-east-1.

Step 6: Verify sender identity (US only)

US carriers require A2P 10DLC registration for any SMS from a business to a consumer. Without it, your messages will silently drop or be rate-limited to about 1 message per second with 40 percent delivery.

  1. In Twilio console go to Messaging > Regulatory Compliance > A2P 10DLC.
  2. Click Register a brand. Provide your EIN, legal name, address and vertical (e.g. Real Estate, Health, E-commerce).
  3. Pay the 4 USD one-time brand registration fee.
  4. Once the brand is approved (usually 1-3 business days), create a campaign: use case = Customer Care or Marketing depending on what you send, sample messages must reflect real content you plan to send.
  5. Assign your phone number to the campaign.
  6. Wait for campaign approval (2-5 days). Only after approval will messages send reliably.

UK, Ireland and most of the EU have no equivalent registration. You can send immediately. Australia requires sender ID registration for alphanumeric senders but numeric long codes work straight away.

Step 7: Set up sender consent (both regions)

Every marketing message must include an opt-out instruction. This CRM automatically appends Reply STOP to opt out to bulk SMS and processes STOP replies via the inbound webhook to mark the contact as do_not_contact. Do not disable this: it is what keeps you off carrier blocklists.

How to test it works

  1. Go to Contacts, open your own contact record, click Send SMS.
  2. Type a test message and send. You should receive the SMS on your phone in under 10 seconds.
  3. Reply to the SMS from your phone.
  4. Refresh the contact record. The reply should appear in the message thread within 5 seconds.
  5. Check Inbox > SMS in the main nav - the message should also appear there.

Common problems

Twilio "Load my numbers" button shows no numbers
You have not bought a number yet, or the SID and Auth Token do not match the same account. Re-copy both from the Twilio console. If you have multiple Twilio subaccounts, make sure you copy from the specific subaccount where the number lives.
SMS sends but shows "queued" forever in the message thread
Status callback webhook is missing or wrong. Re-check step 5.2 - the Status changes URL must point to /api/twilio_status.php and use POST.
Inbound SMS never arrives in the CRM
Messaging webhook URL is wrong or the CRM domain is not publicly reachable. Test with curl -X POST https://your-crm-domain.com/api/sms.php - it should return a 200 with an empty TwiML response. If it returns 404, the URL is wrong. If it returns 403 or hangs, your firewall is blocking Twilio.
Delivery reports show "Undelivered" with error code 30007 (US)
Message filtered by carrier for A2P 10DLC violation. Complete step 6.
Delivery reports show error code 21610
Recipient has previously replied STOP. They are on the Twilio account-level opt-out list. Only they can text START to opt back in. You cannot force-clear this from your side.
Auth error 20003 on send
Auth token is wrong or was rolled. Re-copy from Twilio console. Remember the CRM masks it to bullets; you have to re-paste the full token, do not just click Save.

What this unlocks in the CRM

Two-way SMS on every contact record. Bulk SMS campaigns from the Campaigns > SMS module with automatic STOP handling. Delivery reporting per message. Inbound SMS routing to the Inbox for triage. If you also wire the AI Receptionist (see that guide), the same number handles voice too.

Still stuck?
Email us and we’ll come back within one business day.
info@unavoidablecrm.com