Twilio Setup Guide
During early access, Fissible Phone connects to your own Twilio account. This guide is both the self-serve checklist and the concierge onboarding runbook we use with early customers. Every manual step here is a future provisioning-wizard backlog item, so the step IDs are stable.
Trust framing: everything below is created in your Twilio account. Fissible does not ask for your Twilio account Auth Token, and Fissible servers are not in the live call path for your calls.
S0. Before You Start
Do: set aside about 30-45 minutes, have a Twilio account or payment method ready, and install the Fissible Phone early-access app before onboarding. Twilio bills separately for number rental and usage; check Twilio’s current Voice pricing before buying a number.
Verify: you can sign in to Twilio Console and open the Fissible Phone app on your iPhone.
If it fails: pause setup and contact support@fissible.dev. Concierge note: confirm the customer can access Twilio Console before scheduling the rest of onboarding.
S1. Create or Upgrade Your Twilio Account
Do: create a Twilio account, then upgrade it from trial before testing real inbound business calls. Trial accounts can block inbound calls from unverified numbers, which makes testing look broken even when the app is configured correctly.
Verify: Twilio Console shows an upgraded account with billing enabled.
If it fails: finish Twilio’s billing or verification prompts first. Concierge note: trial-account limits are the first thing to rule out when inbound calls fail.
S2. Buy or Bring Your Business Number
Do: buy a voice-capable Twilio number, port an existing number, or forward an existing business line to the Twilio number as a fast bridge.
Verify: the number appears in Twilio Console under active phone numbers and supports Voice.
If it fails: choose a different number or complete Twilio’s porting requirements. Do not cancel an old provider until porting is complete.
S3. Create the Functions Service
Do: create a Twilio Functions service for Fissible Phone and paste the function files provided during onboarding. Use the visibility shown in the onboarding bundle: public endpoints receive Twilio webhooks, while protected helpers stay private.
Verify: the service deploys without errors and each required function path is visible in Twilio Console.
If it fails: check for missing files, mismatched names, or pasted code from the wrong app version. Concierge note: record the deployed service domain; later steps use it for Voice URLs.
S4. Add Environment Variables
Do: add the required environment variables from the onboarding bundle. Create a Standard API key in Twilio for token signing; a Restricted key cannot sign the tokens the app needs. Never paste the Twilio account Auth Token into Fissible Phone or the onboarding form.
| Variable | Where it comes from | Used for |
|---|---|---|
ACCOUNT_SID | Twilio Console account overview | Identifies your Twilio account |
API_KEY_SID | Standard API key | Voice access token signing |
API_KEY_SECRET | Standard API key secret shown once | Voice access token signing |
TWIML_APP_SID | S5 TwiML App | Routes outgoing app calls |
BUSINESS_NUMBER | S2 Twilio phone number | Default caller ID and inbound routing |
Verify: the Functions service redeploys and no required variable is blank.
If it fails: regenerate a Standard API key and update the service variables. Concierge note: if Doctor later shows token or push setup red, start here.
S5. Create the TwiML App
Do: create a TwiML App in Twilio Console and wire its Voice request URL to the Functions service endpoint provided during onboarding.
Verify: copy the TwiML App SID into TWIML_APP_SID and redeploy the Functions service.
If it fails: confirm the SID starts with AP and belongs to the same Twilio account as the API key and phone number.
S6. Point the Number Voice URL at /voice-in
Do: open your Twilio phone number settings and set the Voice webhook URL to the deployed /voice-in function URL.
Verify: save the number settings and confirm Twilio shows the new URL.
If it fails: make sure the Functions service is deployed and the URL uses the correct service domain. Concierge note: a wrong Voice URL usually means inbound calls never reach the app workflow.
S7. Complete Push Credential Setup
Do: during early access, complete this step with Fissible. The VoIP push certificate belongs to Fissible, so we finish this part during onboarding rather than exposing certificate mechanics in self-serve docs.
Verify: the app Doctor screen shows the push credential check as green.
If it fails: contact support with the Doctor screen result. Concierge note: collect the Twilio account SID and app build number before troubleshooting.
S8. Connect the App
Do: import the setup into Fissible Phone using the onboarding QR code, fissible:// deep link, or clipboard import. Then open the Doctor screen.
Verify: every Doctor check is green. Each red check maps back to one setup step, so use the failing check to decide which section to redo.
If it fails: repeat the specific step named by Doctor rather than restarting the whole setup.
S9. Test Calls and Voicemail
Do: test outbound calling, inbound calling from a phone that is not one of your owned business numbers, and voicemail. Owned-number self-calls are intentionally blocked in common configurations, so use a separate mobile phone for inbound testing.
Verify: outbound calls use the correct business number, inbound calls reach the app workflow, and missed calls create voicemail context.
If it fails: note the time, number, direction, and Doctor result, then contact support. Concierge note: compare the app result with Twilio’s call log for the same timestamp.
Companion Guides
These will become separate setup pages as features move toward launch: A2P 10DLC registration for SMS, CNAM and freecallerregistry guidance for caller reputation, number porting and forwarding bridges, and troubleshooting tables for known Twilio or Doctor failure signatures.
Maintenance Rule
Setup docs are versioned with app releases. When the Twilio Functions bundle changes, the docs need to change in the same release window. Stale setup docs are worse than none.