Connecting an AI agent to amoCRM is the easy part: the platform has an open API, webhooks and a clear data model. The trouble shows up a week after launch. Duplicate leads appear in the pipeline, deals skip stages, and a sales rep opens a card with no idea what the agent has already told the customer. The cause is rarely the model. It is that nobody wrote down the agent's write rules: what it creates, what it may change and what it must never touch.
This article is about those rules: when the agent should create a lead, how it avoids duplicates, which pipeline stages it may move on its own, what it writes in the note and when the conversation passes to a person. If you want the general picture of how AI connects to a CRM, start with our Bitrix24 AI integration guide. The principles are the same; here we focus on amoCRM specifics. One naming detail for readers in the UK and the Gulf: outside Russian-speaking markets the same product is sold as Kommo, so everything below applies to a Kommo account too.
What the agent actually needs access to
The agent does not need the whole account. Handling inbound enquiries takes a handful of entities:
- Contacts: name, phone, email, messenger handle. The agent uses them to check whether this person has been in touch before.
- Leads (deals): the enquiry itself, with pipeline, stage, responsible user, budget and custom fields.
- Pipelines and stages: the agent reads the list so it knows where a lead is allowed to go.
- Notes: a short conversation summary for the sales rep.
- Tasks: "call back", "send a quote", with an owner and a due time.
- Incoming leads: the inbox where a rep accepts or rejects new requests by hand.
- Webhooks: signals from amoCRM to the agent when a stage, owner or note changes.
API access is granted through an integration with OAuth, and the API limits how often you can call it. So the agent should not poll the CRM every second "just in case". It learns about changes through webhooks and queues its own API calls with retries on failure. Check the current limits in the official amoCRM developer documentation: they depend on the integration type and can change.
When a message becomes a lead: three options
The first decision, made before launch, is the moment a message in Instagram or WhatsApp turns into a lead. A clean pipeline depends on it.
| Option | How it works | Fits when | Risk |
|---|---|---|---|
| A lead per message | Every inbound message creates a lead at the first stage | Almost never | The pipeline fills with "hi" and spam; stage conversion stops meaning anything |
| A lead once there is a contact | The agent talks first and creates the lead when the person shares a phone number or confirms interest | High message volume from social channels, where many people only ask a question | Conversations that never reach a contact stay outside the CRM, so you need a separate report on them |
| Via Incoming leads | The agent drops the request with a summary into the inbox; a rep accepts or rejects it | High-ticket sales, where reps want to choose what they take on | The inbox piles up if nobody owns it |
For most businesses with a social media flow the second option works best. That is how our SAYF DESIGN case is built: the consultant runs the conversation in Direct and Messenger in the user's language, and the lead is created in amoCRM once the person leaves a phone number, together with the conversation history. From the second week there were noticeably more leads, and their cost came down.
Duplicates: search before you write
Someone messages you on Instagram, three days later on WhatsApp, then fills in the website form. Without a check that is three contacts and three leads assigned to three different reps. So before any write the agent runs a search:
- Normalise the phone number. "07700 900123" and "+44 7700 900123", or "050 123 4567" and "+971 50 123 4567", must become one format. Without this, phone search is useless. If you sell across several countries, store numbers in full international format only.
- Look up the contact by phone, then by email, then by messenger ID if you keep it in its own field.
- Check open leads for that contact. If one is active, the agent does not create a new lead; it adds a note to the existing one and notifies the owner.
- Create a new lead only if there is no contact, or all of their leads are closed. A request after a closed deal is a new sale, worth tagging as "returning".
Agree in advance what happens with ambiguous matches, such as the same name but different numbers. The agent should not merge contacts here. It creates a new one and gives a rep a task to check.
Pipeline stages: what the agent may move
The core rule: the agent moves a lead only through stages where it did the work itself, and only forward. Below is a sample split for a typical pipeline; your stage names will differ.
| Stage | What the AI does | What stays with a person |
|---|---|---|
| New enquiry | Creates the lead, fills in source, language and the request | Nothing |
| Qualification | Asks 2–4 clarifying questions, fills fields such as budget, timing, city | Review anything the agent flagged as "not sure" |
| Handed to sales | Moves the lead, assigns an owner by your rules, sets a task | Contact the customer before the task is due |
| Quote / proposal | Does not touch it; may remind the rep about an overdue task | Pricing, proposal, negotiation |
| Won / Lost | Never sets these | The decision and the reason for a loss |
Why can't the agent close a lead as lost, even when the customer writes "no thanks"? A closed lead drops out of everyone's view. If someone changes their mind, the agent adds a note and a task for the rep, and the decision stays with a person.
Another common mistake is letting the agent and amoCRM's own automation (Salesbot, the digital pipeline) react to the same stage. A lead enters Qualification, Salesbot sends a template, the agent sends its own question, and the customer gets two messages in a row. Before launch, walk through every stage's settings and decide who talks to the customer there: the agent or the built-in automation.
What the agent writes on the card
The agent is useful to a rep when they can open the card and simply carry on the conversation. That means the note follows a fixed template rather than a free retelling. For example:
Source: Instagram Direct, "fitted kitchens" ad
Language: Arabic
Request: L-shaped fitted kitchen, about 3 m, new-build apartment
Timing: renovation finishes in a month
Budget: not given
Agent told them: typical production lead time from the knowledge base, offered a site measurement
Agent did not promise: price or discount
Next step: call to book the measurement, best after 6 pm
The "did not promise" line looks redundant, but it answers the rep's most awkward question: "what have they already been told?" Structured data such as budget, timing and city also goes into custom fields, so filters and reports work. The note is for reading; the fields are for analytics.
Handover and failures
The agent hands a conversation to a person not only at the end of qualification. Define the triggers up front:
- the customer asks for a human or a call;
- a question about price, discount or contract terms that the approved knowledge base does not answer;
- a complaint or a conflict;
- the agent has misunderstood the customer twice;
- the lead already exists and a rep is working it, in which case the agent stays out of the chat.
Plan for failures too. If amoCRM is unavailable or returns an error, the agent must not lose the enquiry: it keeps it in its own queue, retries later and, if that fails, alerts the owner in Telegram or another channel your team actually reads. Once a day, reconcile two numbers: conversations that reached a contact, and leads that appeared in the CRM. A gap between them is the first sign the integration is breaking somewhere.
Pre-launch checklist
- The lead creation moment is chosen: after a contact, or via Incoming leads.
- There is a phone normalisation rule and a fixed duplicate search order.
- Every stage is marked: agent moves it / agent does not.
- The fields the agent fills and a tag for its leads exist.
- The note template is approved.
- Overlaps with Salesbot and the digital pipeline are checked.
- Handover triggers and the owner assignment rule are written down.
- A daily reconciliation "conversations with a contact → leads in CRM" is in place.
More on connecting AI to working systems is in our Integrations section, and how the agent handles the conversation itself is covered in the article on an AI assistant for Instagram DMs.
FAQ
Do we need a special plan or custom development in amoCRM?
The agent works through the standard API and webhooks, so the account does not need rebuilding. Usually you add a few fields, a tag and sometimes a separate "Handed to sales" stage. API capabilities and limits depend on your plan and integration type; we check this on the first call.
Can the agent work with just one pipeline?
Yes, and that is the best place to start. The agent gets a list of allowed pipelines and stages; it cannot see or change the rest. Once the first pipeline runs smoothly, the rules move to the next one.
How do reps know which leads the agent created?
By the tag and by the author of the notes. A saved filter "agent leads today", reviewed daily for the first few weeks, is the quickest way to spot gaps in the rules.
What if the agent fills a field incorrectly?
The rep corrects it by hand, and the case is logged and reviewed. The cause is usually a vague question to the customer or a gap in the knowledge base, which is why early on the agent should mark a field "not sure" instead of guessing.
Can the agent reply in Arabic or Russian as well as English?
Yes. It identifies the customer's language and continues in it, while the note for the rep can be written in the team's working language. Agree which language the notes use before launch, so the cards stay consistent.
If you want to go through your own amoCRM or Kommo pipeline and see which stages can go to an agent, see how we build AI agents or get in touch. The cost depends on scope and data; the first conversation is there to work it out.