Automation steps
amoCRM steps perform a CRM action at a defined point in a Senler automation and save the result to run variables. They use the account connected to the current project.
Adding a step
Click Add step in the automation editor and select the amoCRM application. Add one of the ten actions, fill in required fields, and save the automation. The CRM action set matches the agent tools.
Fields can use fixed values or variables from earlier steps. Numeric IDs must be positive integers.
Start: Deal stage changed
To react when a deal is moved manually or by another integration, create a
contextual automation whose first step is the application's Deal stage changed
event. The event object is available in the selected run variable and contains
deal_id, deal_name, price, old_status_id, and new_status_id.
pipeline_id is included when the pipeline can be determined. The old and new
stages come from the original webhook. Name and value are read from amoCRM
before each delivery attempt, so they may differ from their values at the
stage change.
A stage change made by the automation itself can also trigger this webhook. Choose one branch for the final customer message to avoid two confirmations of the same change. For example, an order-cancellation flow ends its main branch after updating the deal, and only the webhook branch confirms closure. This requires connected amoCRM events and a published, running automation with this starting step.
Senler first starts the process in a dialog already linked to the deal. Only when there is no exact link does it use the linked lead's latest active private dialog. If no active dialog exists and the lead can receive messages, Senler creates a private dialog. A fallback dialog immediately remembers the deal, so later events use the exact link.
Create contact
Create contact requires contact_name; phone and email are optional. It always creates a new contact in amoCRM, never a deal, and does not search for duplicates by name, phone, or email. Check Get contact for the current Senler lead first.
Result: contact_id and account_url, the contact card URL.
Update contact
Requires contact_id and at least one change: contact_name, phone, or email. Omitted fields remain unchanged; empty values do not clear data. A supplied phone or email replaces the values of that contact field. No deals are changed.
Result: contact_id and account_url.
Create deal
Requires an existing contact_id and deal_name. Optional fields: price, pipeline_id, status_id, responsible_user_id, and comma-separated tags. Creates only a new deal in amoCRM, without changing contact data. Check the contact's deals before creating a duplicate request.
Result: deal_id and account_url, the new deal card URL.
When these three actions run in a Senler lead context, the selected contact_id is saved to that lead's amoCRM link variable, replacing any previous link. A new deal is also added to the current dialog's variable. MCP actions without lead/dialog context do not create these links. Use a context-free action when writing another person's contact.
All three steps have one Next output. A write error stops the step rather than reporting success. Create deal settings allow default pipeline, stage, and owner selections; step parameters take precedence.
Update a deal
This step requires an exact deal_id. It supports name, value, pipeline, stage, owner, loss reason, and tags. The configurator selects pipeline, stage, and owner by their amoCRM names.
Get a contact
Pass contact_id, or omit it to use the current Senler lead's contact. Outputs are Found and Not found. Found returns found = true, contact_id, contact_name, contact_phone, and contact_email. Phone and email prefer a non-empty work value (WORK), then the first non-empty value of the corresponding field; an unset field is an empty string. A missing contact or lead link selects Not found and returns only found = false.
Get a deal
Pass the required deal_id from a previous step or event. Outputs are Found and Not found. Found returns found = true, deal_id, deal_name, deal_price, deal_pipeline_id, and deal_status_id. A missing deal returns only found = false. This step does not fetch a contact or select a deal automatically.
Neither step searches by name. List the contact's deals first when the deal ID is unknown. Connection, access, and rate-limit failures remain errors instead of selecting Not found. Do not use entity fields on that branch: they are absent, and previously assigned variables are not automatically cleared.
In test mode both steps simulate Not found without calling amoCRM. Use a regular run to check real data. Example: Get a contact → Found → List contact deals → select a deal → Get a deal.
List contact deals
Pass contact_id, or leave it empty to use the current lead's contact. The status parameter selects open deals (open, the default), closed deals (closed), or all deals (all); limit restricts the result to 1 through 50 items.
The step has two outputs: Deals found and No deals. The branch is selected after filtering, so closed deals do not select Deals found when status = open. The result contains the deals array, returned count, total_linked count, truncated flag, and contact URL. You can save the whole array to a run variable and route the workflow without adding a separate condition.
The No deals branch is selected only after reading the full linked-deal list. An incomplete amoCRM response, timeout, or more than 1000 linked deals produces an error rather than selecting this branch. truncated only describes the final result cap requested by limit.
For an automation test run, provide contact_id explicitly: the step simulates an empty list and selects No deals. This checks the workflow and variables, not whether the real amoCRM account has matching deals.
Get amoCRM configuration
This step returns a pipelines array with stages, a users array with responsible users, and the users_available flag. Save an array to a run variable when later steps need current amoCRM IDs. users_available = false means the connected amoCRM user cannot access the employee list; pipeline retrieval still succeeded.
Add a note
Pass entity_type, entity_id, and text. The value leads adds a note to a deal, while contacts adds it to a contact.
The result contains note_id, entity_type, and entity_id.
Create a task
Pass entity_type, entity_id, and text. Optional fields are due time in minutes as complete_after_minutes, responsible_user_id, and task_type_id.
The default due time is 60 minutes. The result contains task_id, entity_type, and entity_id.
Responsible-user and task-type IDs must be positive integers. Test mode validates these parameters just like a regular run, but creates no amoCRM task and does not check whether the supplied IDs exist in the account.
Variables and repeated runs
Save required result fields to run variables and use them in later steps. For example, deal_id can feed a later note or task, while account_url can be sent in an internal operator notification.
A technical redelivery of the same step returns the saved result and does not duplicate data. A new Create contact or Create deal run creates a new record. If a later step or another run must update the same deal, save the returned deal_id to a process variable and pass it explicitly.