Connect Ringostat: calls, leads and recordings in the CRM
Two call modes, mapping staff and their numbers, leads from inbound calls, missed calls, the webhook and call recordings.
Ringostat stays your telephony provider; X10 CRM becomes the rep's workspace. Once connected, every call a rep makes or receives lands in the CRM: an inbound call from a new number becomes a lead, a call from a known customer goes into their existing lead, a missed call reaches the rep as a notification, and the recording shows up next to it. This page covers which mode to pick, what goes where, and how to check that it all works.
#How it works
Every minute the CRM pulls the Ringostat call log — the same log other tools connected to your project read from. So the CRM numbers match your Ringostat account no matter where the rep called from: the browser, the Ringostat app or a mobile phone.
- The CRM takes new calls from the log and works out whose call it is: by the SIP account that took or placed it, or — for missed calls — by the number that was dialed.
- Calls of staff linked to a CRM user are imported. Everyone else's are skipped, so the CRM never fills up with conversations of people who don't work in it.
- An inbound call from a new number creates a lead assigned to the rep who owns that number. A call from a known customer goes into their existing lead.
- If the call was missed, the rep gets a “Пропущений виклик” (missed call) notification linking to the lead.
- The recording is attached to the call, usually within a few minutes.
#Two modes: where the rep talks
The call log, leads, missed calls and recordings work the same in both modes. The difference is what the rep talks through and what happens when they click a number in the CRM.
| Ringostat Callback | SIP trunk via the xCRM phone | |
|---|---|---|
| Where the rep talks | In the Ringostat app, a SIP phone or a mobile — as before | In the browser, in the CRM's built-in phone |
| Calling from a lead | Ringostat rings the rep first, then dials the customer once they answer | The rep clicks the number and the call goes straight from the browser |
| Inbound calls | Ring wherever your Ringostat routing sends them | Ring in the CRM, and the customer card opens automatically |
| Auto-dialer and AI agent | Not available | Available |
| Setup | API key and staff only — about 10 minutes | Plus a SIP trunk, a number and a route per rep |
- Pick Ringostat Callback if the team is used to the Ringostat app or their mobiles and you don't want to change that now. The CRM still gets every call, creates leads and shows recordings.
- Pick the xCRM phone if reps live in the CRM all day: the call, the customer card, the script and the status in one window, and the call survives moving between leads.
#Step 1. API key and connection
In your Ringostat account open Integrations → Ringostat API and copy two values: the project ID and the Auth-key.
In the CRM go to Settings → Telephony → Ringostat and click “Add connection”.
API connection
Connection nametextrequiredHow the connection is labelled in the CRM, e.g.
Sales team. Useful when you have several.Ringostat project IDnumberrequiredFrom the Ringostat API page in your account. Each Ringostat project can be connected only once.
Auth-keykeyrequiredSame page. After saving, the CRM shows it masked — to change it, just paste a new one.
Time zonezone nameThe time zone of your Ringostat project, usually
Europe/Kyiv. It defines which time window the CRM reads from the log.
Access and routing
Channel owneruserWho is responsible for the connection. Required for “Owner only” access.
Who can see the channelchoice“Shared by all operators”, “Project users only” or “Owner only” — who can call through this connection.
CRM projectslistWhich project inbound leads are created in. In Callback mode, also which leads can be called through Ringostat.
Call modechoicerequired“Ringostat Callback” or “SIP trunk via the xCRM phone” — see modes.
Ringostat SIP trunktrunkOnly for the xCRM phone mode — see step 4.
Sync
Integration activetoggleA disabled integration neither calls nor reads the log.
Call logtoggleThe every-minute call import. Only worth turning off temporarily.
Call recordingstoggleDownload audio for calls. Recording must also be enabled in Ringostat itself.
Lead for an unknown numbertoggleOn — an inbound call from a number not in the CRM creates a lead. Off — the call is logged without a lead.
Click “Save settings”. The CRM checks the key right away and loads the staff list. “Test connection” does the same without changing anything — handy if you suspect the key was revoked.
#Step 2. Staff and their numbers
Further down the same page is the “Ringostat staff and SIP accounts” block. This is where you decide whose calls reach the CRM and who they belong to.
- 01
Refresh the list
Click “Sync staff” — the CRM loads your Ringostat project's staff with their SIP accounts and extensions.
- 02
Link a CRM user
In the “CRM user” column pick who this person is in the CRM. One CRM user per Ringostat employee.
- 03
Enter the numbers
In the “Ringostat numbers” column enter the rep's own Ringostat number and any shared lines they own, comma-separated:
380731234567, 380737654321. - 04
Save
Click “Save mapping”. This rep's calls start arriving within a minute.
Why the numbers matter
An answered call is credited to whoever picked up — the Ringostat log says so. A missed call has no such person: nobody answered. So the CRM looks at which number was dialed and finds it in the “Ringostat numbers” column.
| Situation | Who the call belongs to |
|---|---|
| The rep answered or placed the call | That rep — always, regardless of numbers |
| Missed call to the rep's own number | The owner of that number in “Ringostat numbers” |
| Missed call to a shared line | Whoever has that line entered |
| Missed call to a number nobody has | Not imported |
| An unlinked employee answered | Not imported, even if the number belongs to someone else |
#Step 3. Ringostat Callback mode
There's nothing extra to set up — the selected mode, linked staff and CRM projects on the connection are enough. How a rep makes a call:
- Clicks the call button in a lead, or types a number into the CRM call panel — it will show the hint “Ringostat Callback — enter a number”.
- Ringostat calls the rep's device — whatever their main direction in Ringostat is: a SIP phone, the app or a mobile.
- The rep answers — Ringostat dials the customer.
- The lead immediately shows “Outbound call started via Ringostat”, and after the call — its duration and recording.
- The rep needs the
calls.ringostat_callbackpermission. - Calling from a lead only works for leads in the projects selected under “CRM projects”.
- If Ringostat says the rep was not found, check that they have a main direction in Ringostat and are linked in the staff table.
#Step 4. The xCRM phone mode
Here the CRM server connects to Ringostat as the rep's SIP phone. Ringostat sees an ordinary SIP account, and the rep talks in the browser. This is set up once per SIP account.
- 01
Get the SIP details from Ringostat
In your Ringostat account open the rep's SIP account and note the login, password and server — usually
sip.ringostat.net. - 02
Create a SIP trunk in the CRM
Follow Step 3. The provider SIP trunk: host
sip.ringostat.net, port5060, the SIP account login and password, “Register with the provider” on. Give it a clear system name such asringostat_ivan. - 03
Add a number
Following step 4, add a number bound to this trunk. Using the rep's own Ringostat number keeps the route easy to recognise.
- 04
Route inbound calls to the rep
Following step 7, create a route: this number → the operator who owns the SIP account. Calls from Ringostat reach this route automatically — the CRM recognises them by the SIP login.
- 05
Attach the trunk to the connection
In the Ringostat settings choose “Call mode” → “SIP trunk via the xCRM phone” and select the new trunk under “Ringostat SIP trunk”. Save.
- 06
Apply the configuration
As in step 9 — until you do, telephony doesn't know about the new trunk.
A call made through the CRM phone is recorded both by the CRM and in the Ringostat log. You won't get a duplicate: the CRM recognises it as the same conversation and enriches its own record with the Ringostat data.
#Inbound leads and missed calls
| What happened | What the CRM does |
|---|---|
| A number that isn't in the CRM calls | Creates a lead named “Невідомий вхідний” (unknown inbound) in the pipeline's starting status, assigned to the rep the call belongs to |
| A known customer calls | Adds the call to their existing lead; no new lead |
| The same number calls several times | All calls go into one lead |
| The number called before but never had a lead | The new lead also takes all their earlier calls, so the rep sees the full history |
| The call was missed | The rep gets a “Пропущений виклик” notification with the number and a link to the lead |
The missed-call notification goes to the CRM notification centre and pops up on screen if a CRM tab is open. One call, one notification. Calls older than three hours don't trigger one: after a long outage the rep would otherwise get a batch of missed calls that were dealt with long ago.
The starting status is the system “New”. If you deleted it and created your own, the CRM uses the first status of the “Processing” group. More on the pipeline in lead statuses.
#Webhook: the lead at ring time
The webhook can only be set up in your Ringostat account — Ringostat has no API for the CRM to do it for you. Take the address from the CRM: on the Ringostat page, the Webhook URL block.
In your Ringostat account open Integrations → Webhooks and create two webhooks:
| Ringostat event | Address | Method |
|---|---|---|
| Before the call (inbound) | Webhook URL from the CRM + ?event=start at the end | POST, JSON |
| After the call (inbound) | Webhook URL from the CRM + ?event=finish at the end | POST, JSON |
Add the parameters to both webhooks. Type the name exactly as in the table and pick the matching Ringostat variable as the value:
| Parameter | What it carries |
|---|---|
uniqueid | Call ID — ties together the events of one call |
caller | Customer's number |
dst | Number that was dialed |
call_type | Call type |
employee_number | Employee extension |
connected_with | Who picked up |
billsec | Talk time |
duration | Total duration |
disposition | Call result |
#Call recordings
- The recording usually appears on the call within a few minutes after it ends, next to the duration and result.
- The CRM keeps the original Ringostat recordings, untouched — with the customer and rep on separate channels. That's how transcription tells who said what.
- Ringostat rate-limits recording downloads. When there are many — say, after importing history — the CRM fetches them in batches, which can take a few hours. Nothing to do on your side.
- Who can listen is governed by the usual CRM permissions — see Call recordings.
#Calls from before you connected
The every-minute sync only takes fresh calls. History from previous weeks is loaded by the onboarding team — tell us the start date you need.
History is imported without creating leads: leads from past calls would appear with today's date and skew your pipeline stats. The calls go into the log with their real dates, and if the customer already has a lead, they're attached to it. When such a customer calls again, their new lead picks up the whole earlier history too.
#Troubleshooting
| Symptom | Cause and fix |
|---|---|
| A rep's calls don't show up | They aren't linked to a user in the staff table. Link them — calls start arriving within a minute. |
| Answered calls arrive, missed ones don't | The rep has no “Ringostat numbers” entered. Add their own number and any shared lines. |
| “Ringostat відхилив Auth-key” (key rejected) | The key was revoked or reissued. Copy the new one from your Ringostat account into the Auth-key field. |
| “Ringostat returned 0 employees” | Wrong project ID, or the project has no staff yet. Check the ID on the Ringostat API page. |
| The lead appears a minute or two after the call | That's without the webhook — Ringostat adds a call to the log once it ends. For an instant lead, set up the webhook. |
| Inbound calls don't ring in the browser (xCRM phone mode) | The SIP account is also active in the Ringostat app, or the telephony configuration wasn't applied. See telephony troubleshooting. |
| The recording isn't there yet | Recordings are fetched in batches — give it a few minutes. Check that recording is on both in Ringostat and in the “Call recordings” toggle. |
The “Connection status” block on the CRM's Ringostat page shows the time of the last successful sync and the text of the last error — start there.
#Permissions
| Permission | What it allows |
|---|---|
settings.integrations_ringostat | Configure the Ringostat connection and staff |
settings.integrations | The same for all integrations at once |
calls.ringostat_callback | Call customers via Ringostat Callback |
Everything else — viewing leads, listening to recordings — follows the usual role permissions, see Roles and permissions.
#Launch checklist
- Project ID and Auth-key entered, “Test connection” passes
- Call mode and CRM projects selected
- Every rep linked to their CRM user
- Every rep has their own number entered; shared lines assigned to their owners
- For the xCRM phone: trunk, number and route per SIP account, configuration applied
- Two webhooks created in Ringostat — call start and call end
- A test call from an unknown number created a lead; a missed one arrived as a notification