Skip to main content

CRM Integrations: amoCRM, Bitrix24, Webhook

4phone sends call data to your CRM, helps create leads from new inbound inquiries, and stores call history alongside customer records. Integrations are configured in the dashboard under Dashboard -> Integrations.

Supported integrations​

  1. amoCRM: launching calls from amoCRM via webhook, connecting via OAuth or hybrid mode, logging calls via the Calls API, creating inbound inquiries in "Unsorted", and attaching call recordings.
  2. Bitrix24: connecting via incoming webhook or OAuth, customer pop-up card during calls, auto-lead creation, and recording attachments.
  3. Custom Webhook: sending call events to any external URL.

How amoCRM works​

amoCRM can be connected in three modes:

ModeWhen to useOAuth required
AMO WebhookamoCRM triggers an outbound call through 4phoneNo
Webhook + OAuthamoCRM triggers calls, and 4phone additionally enriches data and logs call historyYes
OAuth/API Only4phone logs calls, creates inquiries, and attaches recordings without webhook triggersYes

In webhook mode, amoCRM sends an HTTP request to a 4phone URL from the Digital Pipeline. In amoCRM, this is configured under Deals -> Setup -> Add trigger -> API + Send webhook. Upon receiving the request, 4phone finds the customer's phone number, determines the extension, and initiates the call.

In OAuth and hybrid modes, 4phone obtains an amoCRM OAuth token and automatically refreshes it as needed.

When a call ends, 4phone logs the call in amoCRM via the Calls API. For inbound calls, the customer's number is used; for outbound calls, the dialed number is used. If the call has an audio recording and "Attach recordings" is enabled, a link to the recording is sent to amoCRM.

If "Auto-create leads" is enabled and an inbound caller's number is not found among amoCRM contacts, 4phone creates an entry in "Unsorted" as a SIP call. The entry includes the customer's phone number, call timestamp, duration, source 4phone, call ID, and a link to the recording if available.

Check

Creating inbound inquiries in "Unsorted" requires an amoCRM Pipeline ID. Without it, amoCRM will reject the SIP unsorted creation request, although standard call logging will continue to work.

Important

amoCRM does not provide a separate public sandbox API. Final verification requires a real test amoCRM account or a dedicated test pipeline in your production account.

Connecting amoCRM​

Which mode to choose​

To quickly trigger calls from amoCRM, choose AMO Webhook. This mode does not require a Client ID, Client Secret, or OAuth authorization.

If you also want 4phone to create inquiries in "Unsorted", fetch contact details, and log call history in amoCRM, choose Webhook + OAuth.

If calls are initiated from 4phone and amoCRM is only needed for call history, recordings, and leads, choose OAuth/API Only.

What you will need​

  1. An amoCRM account with administrator privileges.
  2. Your amoCRM subdomain. For example, for mycompany.amocrm.ru, the subdomain is mycompany.
  3. For webhook mode: the 4phone extension to ring first, such as 101.
  4. For OAuth or hybrid mode: Client ID and Client Secret from an external amoCRM integration.
  5. Redirect URI for the amoCRM application:
https://api.4phone.uz/api/crm-callback/oauth/amocrm
  1. amoCRM Pipeline ID. Required for creating inbound inquiries in "Unsorted".

Setting up the webhook trigger in amoCRM​

  1. In 4phone, open Dashboard -> Integrations.
  2. Open the amoCRM integration card.
  3. In the AMO Webhooks for launching calls section, copy one of the URLs:
    • Call from responsible user;
    • Call via extension / routing scheme.
  4. In amoCRM, open Deals.
  5. Click Setup (Digital Pipeline).
  6. On the desired stage, click Add trigger.
  7. Select API + Send webhook.
  8. Paste the 4phone URL and save the pipeline settings.
Important

For initial setup, it is easiest to use the Call via extension / routing scheme link. It already includes the extension=101 parameter. If you need a different extension, replace 101 with the desired extension number.

Check

The deal must have a contact with a phone number, or the phone number must be passed in the webhook URL or request body. If no phone number is found, 4phone does not initiate the call and returns the ignored status.

Setting up the amoCRM application for OAuth​

  1. Log in to amoCRM as an administrator.
  2. Go to the developer/integrations section and create an external integration.
  3. Set the Redirect URI to: https://api.4phone.uz/api/crm-callback/oauth/amocrm.
  4. Grant permissions for CRM entities, contacts, users, calls, and "Unsorted".
  5. Save the Client ID and Client Secret.
Check

The Redirect URI in amoCRM must match the address above character for character. Even a trailing slash can cause an OAuth error.

Setting up in 4phone​

  1. Open Dashboard -> Integrations.
  2. Click "Add integration" and select amoCRM.
  3. Enter a name for the integration, for example, amoCRM Sales.
  4. Enter your amoCRM subdomain.
  5. Select the integration mode:
    • AMO Webhook;
    • Webhook + OAuth;
    • OAuth/API Only.
  6. For webhook mode, specify a default extension if calls should be routed through a shared extension.
  7. For OAuth or hybrid mode, enter your Client ID and Client Secret.
  8. Enter the amoCRM Pipeline ID if you plan to automatically create inquiries in "Unsorted".
  9. Save the integration.
  10. For OAuth or hybrid mode, click "Authorize" and confirm access in amoCRM.
  11. If you need calls from the responsible user or accurate responsible user attribution in call history, click "Sync employees" and map amoCRM users to 4phone extensions.

amoCRM integration settings​

When you create the integration, core data-exchange options are enabled automatically (contact 4phone support if you need to customize them):

SettingWhat it does
Call loggingSends completed inbound and outbound calls to amoCRM
Auto-create leadsCreates an inbound call entry in "Unsorted" if the number is not found in contacts
Attach recordingsSends a link to the call recording to amoCRM
Employee mappingLinks an amoCRM user to a 4phone extension

Do you need to map operator extensions?​

Mapping operators is not always mandatory.

ScenarioMapping required
Call via extension / routing schemeNo
Call from responsible userYes
Assigning the responsible user in amoCRM historyYes
Basic recording and calling through a shared extensionNo

When using the Call via extension / routing scheme link, 4phone reads the extension from the extension parameter, for example:

&extension=101

When using the Call from responsible user link, amoCRM sends responsible_user_id, and 4phone looks up the corresponding extension through employee mapping.

With mapping configured, 4phone passes the responsible user to call history and newly created inquiries/contacts. That way, amoCRM shows that a specific manager—such as Anvar—spoke with the customer, rather than just a general line.

What should appear in amoCRM​

After a test inbound call from a new number:

  1. A call with source 4phone appears in amoCRM.
  2. If the number is not found in contacts, a new inquiry appears in "Unsorted".
  3. If a call recording is available, the call entry includes a link to the audio recording.
  4. If the extension is mapped to an amoCRM user, the call is linked to that responsible user.

After an outbound call:

  1. An outbound call appears in amoCRM.
  2. The customer's phone number dialed by the employee is recorded.
  3. The responsible user is determined from the extension mapping.

Verifying the amoCRM connection​

  1. On the integration card, click "Refresh diagnostics".
  2. For webhook mode, check the AMO Webhooks block: the status should be OK.
  3. For OAuth or hybrid mode, check the "Authorization" block. The token must not be expired.
  4. Check the "Mapping" block if you use calls from the responsible user.
  5. Test the webhook trigger in amoCRM on a test deal.
  6. Make a test inbound call from a phone number that does not exist in amoCRM.
  7. Make a test outbound call from the 4phone softphone.

Common amoCRM errors​

ErrorWhat to check
OAuth returned an errorRedirect URI, Client ID, Client Secret, application permissions
Connection fails diagnosticsToken, subdomain, amoCRM availability, user permissions
Webhook returns ignoredWhether the customer phone number is passed, whether extension is valid, whether employee mapping exists for the responsible user
"Unsorted" entry is not createdPipeline ID, permissions for "Unsorted", whether auto-create leads is enabled
Call is logged without a recordingWhether call recording is enabled in 4phone and "Attach recordings" is active
Responsible user does not matchCheck the mapping between the amoCRM user and the 4phone extension
Calls do not appearWhether "Call logging" is enabled and the integration is active

amoCRM Dialer (Marketplace widget)​

In addition to webhook links and OAuth, 4phone provides a dedicated telephony widget in the amoCRM Marketplace.

Once installed, the widget provides:

  1. Click-to-call. Clicking any phone number in amoCRM initiates a call through 4phone.
  2. Card button. Start a call and view recent call history directly from a deal, contact, company, or customer card.
  3. Floating dialer. The panel includes manual number entry, a dialpad, connection status, a call timer, and a hangup button.
  4. History and recordings. The "Recent" tab displays the latest calls for the current number/card along with links to audio recordings when available.
  5. Call queue. Select contacts, companies, deals, or customers in an amoCRM list and open 4phone—the selected items are added to a dialing queue. You can call them one by one, pause the queue, or enable automatic progression to the next item after the current call ends.
  6. Inbound call notifications. A user mapped to a 4phone extension receives an inbound call alert with a link to the matched contact.

Calls work via callback: 4phone first rings the employee's extension and, once answered, bridges the call to the customer. Audio does not flow through the amoCRM browser tab, so closing the dialer panel does not drop an active conversation.

Installing the widget​

  1. In 4phone, create and activate the amoCRM integration for your subdomain.
  2. Sync employees and map each amoCRM user to their 4phone extension.
  3. In amoCRM, open the Marketplace, search for fourphone, and click Install.
  4. Confirm data sharing and complete the connection in the 4phone dashboard.
  5. Refresh amoCRM and make a test outbound and inbound call.
Check

For personal outbound and inbound calls, the amoCRM user must be mapped to an active 4phone extension. Without a mapping, the widget shows the connection status and prevents spoofing another employee's extension.

Call queue​

The queue is built directly inside amoCRM without opening a separate 4phone page. It is stored locally for the current account and user, holds up to 50 items, and removes each item once its call finishes.

Auto-advance to the next item is disabled by default. Turn on the "Auto" button if you want the next call to start automatically after the current call ends; the "Pause" button temporarily stops progression.

If the dialer says "Connect integration"​

  1. Open Dashboard -> Integrations in 4phone.
  2. Verify that the amoCRM integration is active and configured for the same subdomain.
  3. Sync employees and verify that the amoCRM user is mapped to an extension.
  4. Refresh the amoCRM page.

Pricing and support​

Current pricing is published at 4phone.uz/pricing. For new customers, the base price is 120,000 UZS per user per month, or 100,000 UZS per user per month for 10 or more users. A 14-day free trial is available.

Support: +998 78 113 70 00, info@4phone.uz. Privacy Policy: 4phone.uz/privacy.

Connecting Bitrix24​

Connection modes​

  1. Incoming webhook: the simplest option. Paste the webhook URL from Bitrix24.
  2. OAuth: full authorization via a Bitrix24 application with Client ID and Secret.

Connection steps (webhook)​

  1. In Bitrix24, create an incoming webhook with CRM and telephony permissions.
  2. In 4phone, add a Bitrix24 integration, select "Incoming webhook" mode, and paste the URL.
  3. Click "Test connection" to verify.

Connection steps (OAuth)​

  1. In Bitrix24, register a server application.
  2. In 4phone, enter your portal URL, Client ID, and Client Secret.
  3. Click "Authorize" and confirm access in Bitrix24.

Features​

  1. Call pop-up card: displays the customer's card in Bitrix24 on inbound calls.
  2. Auto-leads: creates a lead when a call arrives from an unknown number.
  3. Recording attachments: attaches conversation recordings to calls using readable file names.

Who a Bitrix24 call is assigned to​

In Bitrix24 statistics and analytics, every call belongs to a specific employee. 4phone picks that employee in the following order:

  1. An operator answered or placed the call, and the operator's extension is mapped to a Bitrix24 employee in the "Employee mapping" table. The call is assigned to that employee.
  2. An inbound call arrived through a queue. The call is assigned to the operator who answered. Until someone answers, it belongs to the default responsible user.
  3. An inbound call was not answered. It is distributed round-robin among employees who have an extension mapped.
  4. No employee could be determined. The call is assigned to the "Default responsible user". If none is selected, the webhook owner is used: the Bitrix24 user on whose behalf the webhook was created. This is usually the portal Administrator, so such calls look like Administrator calls in analytics.
Check

To keep missed and unassigned calls away from the Administrator, create a service user in Bitrix24, for example "4phone Telephony", and select it in the "Default responsible user" field on the integration card.

To see who is who in Bitrix24 analytics:

  1. On the integration card, click "Sync employees".
  2. In the "Employee mapping" table, choose a 4phone extension for every employee. One extension cannot be mapped to two employees: the system shows an error.
  3. In the "Who is recorded on a call" block, choose the "Default responsible user" and check the "Employees mapped" counter.
  4. Click "Save".
Important

Changes apply to new calls. Bitrix24 does not let you change the employee of calls that already exist through the REST API, so history stays as it was.

Conversation recordings in Bitrix24​

A recording is attached to a Bitrix24 call only when a conversation took place. Missed inbound calls, including calls that waited in a queue without an answer, have no recording, so empty files do not appear in call cards.

The recording file name contains the call details: date and time in the company time zone, direction (in for inbound, out for outbound), the employee name, the customer number, and a short call identifier. For example:

2026-10-19_14-32_out_Ivan-Petrov_998901234567_1a64448a.mp3

The file name shows when and by whom the call was made without opening the card.

Custom Webhook​

For custom integrations, you can configure 4phone to send call events to any HTTP endpoint.

  1. Enter the webhook URL.
  2. Optionally configure a secret key to sign requests.
  3. On every call, 4phone sends a POST request with the call payload.

Employee mapping​

After connecting your CRM, map CRM users to 4phone extensions. This enables 4phone to:

  1. accurately assign the responsible manager;
  2. route calls to the appropriate employee;
  3. properly log calls in the CRM.

The mapping section lists CRM employees with their IDs and assigned extensions. Changes are saved automatically.

Important

The "Sync employees" button refreshes the employee list from your CRM. Use it after adding new users in the CRM.

Managing an integration​

  1. Enable/Disable: toggles the integration on or off without deleting its configuration.
  2. Re-authorize: if a token expires, click "Re-authorize".
  3. Test connection: verifies that the CRM is reachable and the token is valid.
  4. Delete: permanently removes the integration and all associated mapping data.

Sync errors​

The integration card displays recent errors including timestamp, operation type, and description. Common causes include:

  1. expired authorization token;
  2. temporary CRM outage;
  3. CRM API rate limit exceeded;
  4. invalid employee mapping.
Before connecting your CRM
  1. you have administrator privileges in the CRM;
  2. Client ID and Secret (or webhook URL) are ready;
  3. extensions are configured for employees in 4phone;
  4. employees are mapped after connecting;
  5. a test call has been placed to verify synchronization.

Next, we recommend reading Extensions and WebRTC and Common Issues and Quick Fixes.