Connect a company phone system or twilio numbers
The Owner connects the company's phone numbers to the platform so calls appear in the Inbox: either a company phone system (a hosted or on-premises PBX) that posts call events to the generic phone-system webhook, or numbers of the company's Twilio account.
When this happens: Owner opens Admin — Channels and clicks Connect phone.
Step by step
- 1
Open Admin — Channels and clicks Connect phone.
EasyCRM shows the provider picker: Company phone system (generic webhook) and Twilio.
- 2
Choose Company phone system (generic webhook).
EasyCRM shows the form: Display name (default Phone — +373 22 123 456), company numbers, Record calls (off), and Verification (Signature, recommended, or Token).
- 3
Add the number +373 22 123 456 with the label Vânzări, selects Signature and clicks Create connection.
Normalizes the number to E.164 using the company country, creates the connection in state *Connecting*, generates the webhook URL and a secret, and shows both once, each with a Copy button, with the event contract and a sample test request (a ready-to-run command that posts the setup check
call.testto the URL, which makes the connection *Active* and records no call). - 4
Copies the URL and the secret into the phone system's webhook settings (or gives them to the person who administers it).
- 5
Places a test call to +373 22 123 456, or has the sample test request run from the phone system's server.
EasyCRM posts the call event to the connection's URL, signed with the secret. EasyCRM verifies the signature, stores the event, shows Last verified event: 14:32, sets the connection to *Active* and displays Connected. Calls to +373 22 123 456 will appear in the Inbox.
Other paths
Connect twilio numbers
If chooses Twilio. Reads the company's Twilio account and lists its incoming numbers with a checkbox each. Ticks +373 22 123 456 and gives it the label Vânzări; leaves Delete Twilio's copy of recordings after storing on. Clicks Connect. Points each ticked number's voice webhook and status callback at the connection's route, creates the connection and sets it *Active*.
Token verification for a phone system that cannot sign
If selects Token instead of Signature. EasyCRM shows the secret as a bearer token the phone system must send in Authorization: Bearer …. The rest of the flow is unchanged.
Let the platform start calls
If fills Originate URL and its token (for click-to-call, UC-29.9), and optionally a Recording download token. EasyCRM stores both encrypted. The connection can now start calls.
Rotate the secret later
Open the connection and clicks Rotate secret. EasyCRM shows a new secret once. The old secret stays valid for 24 hours so the phone system can be updated, and VoiceSecretRotated is audited.
If something goes wrong
Number already connected
At step 5 or , the number already belongs to another voice connection of the company. Refuses with EasyCrm:Voice:NumberAlreadyConnected (+373 22 123 456 is already connected under 'Phone — Sales') and creates nothing.
Number cannot be parsed
The number cannot be normalized with the company country. EasyCRM shows Enter the number with its country code, for example +373 22 123 456
Test event not verified
At step 10 the signature does not verify (secret copied wrongly or rotated). EasyCRM records WebhookSignatureInvalid, leaves the connection *Connecting* and shows the guided fix from UC-29.3.
Twilio refuses the webhook change
At Twilio rejects the update (number not on the account, or the credentials are no longer valid). EasyCRM creates the connection in state *Error* with Twilio's message; the Owner can retry from the connection detail screen.
Telephony not enabled or permission missing
The company's Telephony feature is off, or the actor lacks EasyCrm.Channels.Connect: Connect phone is not offered.
Good to know
- A voice connection is one provider account with one or more company numbers; a number belongs to at most one voice connection of the company.
- A generic connection becomes *Active* on its first verified event; the secret is shown once and can be rotated with a 24-hour overlap.
- The phone system's own queues and menus decide who rings (provider-routed); Twilio numbers are routed by the platform.
- Call recording is off by default; with a provider-routed system the caller is informed by the phone system's own announcement.
- Voice connections exist only while the company's Telephony feature is on; Twilio credentials stay in the one Twilio account setting shared with SMS.
- Adding another provider is a new adapter and changes no use case.