Site Integration with amoCRM: API and Webhooks

Integration of a site with amoCRM: API and webhooks

Development and maintenance of all types of websites:

Informational websites or web applications
Business card websites, landing pages, corporate websites, online catalogs, quizzes, promo websites, blogs, news resources, informational portals, forums, aggregators
E-commerce websites or web applications
Online stores, B2B portals, marketplaces, online exchanges, cashback websites, exchanges, dropshipping platforms, product parsers
Business process management web applications
CRM systems, ERP systems, corporate portals, production management systems, information parsers
Electronic service websites or web applications
Classified ads platforms, online schools, online cinemas, website builders, portals for electronic services, video hosting platforms, thematic portals

These are just some of the technical types of websites we work with, and each of them can have its own specific features and functionality, as well as be customized to meet the specific needs and goals of the client.

Our competencies:

Frequently Asked Questions

Latest works

  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1281
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1237
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    977
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    1026
  • image_website-sbh_0.webp
    Website development for SBH Partners
    1103
  • image_website-_0.webp
    Website development for Red Pear
    550

Integration of a site with amoCRM: API and webhooks

A lead comes from a form on the site — the manager spends 2–3 minutes manually entering the contact into amoCRM. That's 30% of lost leads due to delay. Each lost lead costs on average 5,000 rubles in potential revenue. Automatic integration via REST API eliminates the delay and ensures every request immediately lands in the right funnel. Sales team time savings — up to 40%. With an average manager salary of 50,000 rubles per month, that's 20,000 rubles saved monthly per manager. Payback of integration — less than 3 months.

We have set up such synchronization for 30+ projects: from online stores to B2B portals. Stack — Laravel 11, PostgreSQL, Redis. We guarantee 99.9% uptime and processing 1000+ leads per hour.

Why OAuth 2.0 is the only option for server-to-server?

amoCRM uses Authorization Code flow with a long-lived refresh token (60 days). Unlike Bitrix24, where permanent webhooks can be used, amoCRM requires a full OAuth scheme. According to official amoCRM documentation, this is the only method for server-to-server interaction.

Setup process:

  1. Create an integration in the amoCRM account: "Settings → Integrations → Create integration".
  2. Obtain client_id, client_secret, redirect_uri.
  3. Initial authorization — a manual step via browser (generating a code).
  4. Exchange code for access + refresh tokens — programmatically.
  5. Automatic access token refresh via refresh.
// ... 

We recommend storing tokens in cache and database — this reduces the risk of losing access. In case of a cache failure, the backup in settings allows session recovery without re-authorization.

API client for working with entities

amoCRM v4 REST API supports all CRUD operations. We use a single client with a 15-second timeout:

// ... 

How do we create a contact and a deal?

In amoCRM, a request is a combination of Contact and Lead. We first search for an existing contact by phone to avoid duplicates, then create a deal with custom fields (source, UTM tags). Detailed algorithm:

// ... 

Custom fields are created via the amoCRM interface. Their IDs can be obtained via GET /leads/custom_fields. In the config, we map the field_id.

What to do with webhooks from amoCRM?

Webhooks provide feedback from amoCRM when a deal status changes. Setup is simple: in the integration interface, specify your endpoint URL. amoCRM sends POST requests in form-encoded format. Example handler in Laravel:

// ... 

Thus, when an order is paid on the site, the status changes in amoCRM, and conversely — when the status changes in CRM, the order is updated. Webhook processing speed — up to 5 seconds, which is 3 times faster than periodic API polling.

Updating a deal on payment

Note: when a client pays for an order, we automatically update the deal in amoCRM: set the status to "Successful", price, and order number in a custom field. For this, we call PATCH /api/v4/leads/{id} with new data.

Comparison of approaches: webhooks vs direct API

Parameter Direct REST API Webhooks
Initiation Site → amoCRM amoCRM → Site
Speed Instant (synchronous) Depends on queue, usually < 1 min
Reliability Error control required Automatic retries
Use cases Sending new leads Updating existing statuses

The optimal scheme is a combination: creating leads via API, syncing statuses via webhooks. This ensures two-way synchronization.

Typical integration mistakes

  • Ignoring refresh token: its lifetime is 60 days, needs to be renewed in advance.
  • Missing idempotency when processing webhooks: a repeated request can create a duplicate.
  • Incorrect custom field mapping: field IDs differ across accounts.
  • Timeouts: without Redis connection pooling or queues, the site may freeze under peak load.

What's included in the integration (turnkey)

  • Architecture documentation for the integration (OAuth, requests, data schemas)
  • Setting up a token store (cache + DB) with automatic refresh
  • Implementing an API client with timeouts and error handling
  • Creating a webhook controller with order status synchronization
  • Migrating custom fields and configs
  • Training your team on integration usage (1 hour session)
  • Technical support for 30 days after launch
  • Deliverables: detailed documentation, all source code, access to integration settings

Timeframes

Integration type Timeframe
Basic (OAuth, sending leads, token storage) 1–2 days
Full (two-way sync, webhook, custom fields, UTM) 3–4 days
Extended (catalog, tasks, chat) +2–3 days

We'll assess your project for free

Contact us for a detailed discussion of your project. We will assess your project and offer the optimal solution. Get a consultation right now. Integration is done turnkey with full training and support.