logo_smallAxellero.io

amoCRM

amoCRM (Kommo) CRM integration for lead, contact, company, task, and pipeline management

amoCRM (Kommo) CRM integration for Axellero Workflow Designer and Agentflow Designer.

Setup Required: See the Setup Guide for authentication configuration and connector setup.

Quick Navigation

Overview

Comprehensive integration with amoCRM/Kommo CRM platform for managing your sales pipeline, customer relationships, and team tasks. Automate lead processing, contact management, and task workflows with real-time webhook triggers.

Key Features:

  • Lead Management - Create, update, and track leads through your sales pipeline
  • Contact & Company Management - Maintain customer database with full CRUD operations
  • Task Automation - Create and manage tasks linked to CRM entities
  • Pipeline Visibility - Access pipeline stages and statuses
  • Real-time Webhooks - Trigger workflows on CRM events (21 event types)

Connection Configuration

ParameterTypeRequiredDescription
accessTokenTEXTYesOAuth 2.0 access token for API authentication
domainTEXTYesYour amoCRM/Kommo domain (e.g., yourcompany.kommo.com)

Setup Instructions: See the Setup Guide for OAuth configuration, connector creation, and getting started.

Available Operations

CategoryOperationDescription
AccountgetAccountGet account information and settings
LeadslistLeadsList leads with filtering and pagination
LeadsgetLeadGet a single lead by ID
LeadscreateLeadCreate a new lead
LeadsupdateLeadUpdate an existing lead
ContactslistContactsList contacts with filtering and pagination
ContactsgetContactGet a single contact by ID
ContactscreateContactCreate a new contact
ContactsupdateContactUpdate an existing contact
CompanieslistCompaniesList companies with filtering and pagination
CompaniesgetCompanyGet a single company by ID
CompaniescreateCompanyCreate a new company
CompaniesupdateCompanyUpdate an existing company
TaskslistTasksList tasks with filtering and pagination
TasksgetTaskGet a single task by ID
TaskscreateTaskCreate a new task linked to an entity
TasksupdateTaskUpdate an existing task
TaskscompleteTaskMark a task as completed
PipelineslistPipelinesList all pipelines with statuses
PipelinesgetPipelineGet a single pipeline by ID
UserslistUsersList all users in the account

Operations Reference

Account

getAccount

Retrieve account information including settings and current user details.

Parameters:

ParameterTypeRequiredDescription
withTEXTNoAdditional data to include (comma-separated): amojo_id, version, drive_url, is_api_filter_enabled

Configuration Example:

{
  "with": "amojo_id,version"
}

Note: Connector options (accessToken, domain) are automatically injected by the runtime. You only need to specify operation-specific parameters.

Success Response:

{
  "id": 12345678,
  "name": "My Company",
  "subdomain": "mycompany",
  "currency": "USD",
  "current_user_id": 987654
}

Error Response:

{
  "message": "HTTP 401: Unauthorized",
  "code": "HTTP_401",
  "type": "HTTP_ERROR",
  "operation": "getAccount"
}

Leads

listLeads

Retrieve a list of leads with optional filtering and pagination.

Parameters:

ParameterTypeRequiredDescription
limitINTNoMaximum leads to return (1-250, default 50)
pageINTNoPage number for pagination
queryTEXTNoSearch query to filter leads
filterTEXTNoJSON filter object: {"status_id": [1,2], "pipeline_id": [3]}
orderTEXTNoSort order: created_at:desc, created_at:asc, updated_at:desc, updated_at:asc
withTEXTNoInclude related data: contacts, loss_reason, source_id

Configuration Example:

{
  "limit": 50,
  "query": "{{ctx.vars.searchQuery}}",
  "order": "created_at:desc",
  "with": "contacts"
}

Success Response:

{
  "leads": [
    {
      "id": 123456,
      "name": "New Deal",
      "price": 50000,
      "status_id": 142,
      "pipeline_id": 1,
      "responsible_user_id": 987654,
      "created_at": 1609459200,
      "updated_at": 1609545600
    }
  ],
  "page": 1,
  "totalItems": 150
}

getLead

Retrieve a single lead by its ID.

Parameters:

ParameterTypeRequiredDescription
leadIdTEXTYesLead ID
withTEXTNoInclude related data: contacts, loss_reason, source_id

Configuration Example:

{
  "leadId": "{{ctx.nodes.trigger.outputs.data.id}}",
  "with": "contacts"
}

Success Response:

{
  "id": 123456,
  "name": "New Deal",
  "price": 50000,
  "status_id": 142,
  "pipeline_id": 1,
  "responsible_user_id": 987654,
  "created_at": 1609459200,
  "updated_at": 1609545600,
  "_embedded": {
    "contacts": [
      {"id": 789012, "name": "John Doe"}
    ]
  }
}

createLead

Create a new lead with optional custom fields and linked entities.

Parameters:

ParameterTypeRequiredDescription
nameTEXTNoLead name
priceINTNoLead budget/price
statusIdINTNoStatus ID (pipeline stage)
pipelineIdINTNoPipeline ID
responsibleUserIdINTNoResponsible user ID
customFieldsValuesTEXTNoCustom fields JSON array
tagsTEXTNoTags (comma-separated names or JSON array)
contactsIdsTEXTNoContact IDs to link (comma-separated)
companyIdINTNoCompany ID to link

Configuration Example:

{
  "name": "{{ctx.vars.leadName}}",
  "price": 25000,
  "pipelineId": 1,
  "statusId": 142,
  "responsibleUserId": 987654,
  "tags": "website,inbound"
}

Success Response:

{
  "id": 789012,
  "name": "New Lead",
  "price": 25000,
  "status_id": 142,
  "pipeline_id": 1
}

updateLead

Update an existing lead by ID.

Parameters:

ParameterTypeRequiredDescription
leadIdTEXTYesLead ID to update
nameTEXTNoLead name
priceINTNoLead budget/price
statusIdINTNoStatus ID (pipeline stage)
pipelineIdINTNoPipeline ID
responsibleUserIdINTNoResponsible user ID
customFieldsValuesTEXTNoCustom fields JSON array
tagsToAddTEXTNoTags to add (comma-separated)
tagsToRemoveTEXTNoTags to remove (comma-separated)

Configuration Example:

{
  "leadId": "{{ctx.nodes.getLead.outputs.data.id}}",
  "statusId": 143,
  "tagsToAdd": "qualified"
}

Success Response:

{
  "id": 123456,
  "name": "Qualified Lead",
  "status_id": 143,
  "pipeline_id": 1
}

Contacts

listContacts

Retrieve a list of contacts with optional filtering and pagination.

Parameters:

ParameterTypeRequiredDescription
limitINTNoMaximum contacts to return (1-250)
pageINTNoPage number for pagination
queryTEXTNoSearch query to filter contacts
filterTEXTNoJSON filter object: {"responsible_user_id": [1,2]}
orderTEXTNoSort order: created_at:desc, updated_at:desc, etc.
withTEXTNoInclude related data: leads, customers

Configuration Example:

{
  "limit": 50,
  "query": "{{ctx.vars.searchQuery}}",
  "order": "created_at:desc"
}

Success Response:

{
  "contacts": [
    {
      "id": 789012,
      "name": "John Doe",
      "responsible_user_id": 987654,
      "created_at": 1609459200
    }
  ],
  "page": 1,
  "totalItems": 85
}

getContact

Retrieve a single contact by its ID.

Parameters:

ParameterTypeRequiredDescription
contactIdTEXTYesContact ID
withTEXTNoInclude related data: leads, customers

Configuration Example:

{
  "contactId": "{{ctx.nodes.trigger.outputs.data.data[0].id}}",
  "with": "leads"
}

createContact

Create a new contact with optional custom fields and linked entities.

Parameters:

ParameterTypeRequiredDescription
nameTEXTNoContact name
firstNameTEXTNoFirst name
lastNameTEXTNoLast name
responsibleUserIdINTNoResponsible user ID
customFieldsValuesTEXTNoCustom fields JSON array
tagsTEXTNoTags (comma-separated names)
companyIdINTNoCompany ID to link
leadsIdsTEXTNoLead IDs to link (comma-separated)

Configuration Example:

{
  "firstName": "{{ctx.vars.firstName}}",
  "lastName": "{{ctx.vars.lastName}}",
  "customFieldsValues": [
    {
      "field_id": 123456,
      "values": [{"value": "{{ctx.vars.email}}"}]
    }
  ]
}

Success Response:

{
  "id": 345678,
  "name": "John Doe",
  "first_name": "John",
  "last_name": "Doe"
}

updateContact

Update an existing contact by ID.

Parameters:

ParameterTypeRequiredDescription
contactIdTEXTYesContact ID to update
nameTEXTNoContact name
firstNameTEXTNoFirst name
lastNameTEXTNoLast name
responsibleUserIdINTNoResponsible user ID
customFieldsValuesTEXTNoCustom fields JSON array
tagsToAddTEXTNoTags to add
tagsToRemoveTEXTNoTags to remove

Configuration Example:

{
  "contactId": "{{ctx.nodes.getContact.outputs.data.id}}",
  "tagsToAdd": "vip",
  "responsibleUserId": 987654
}

Companies

listCompanies

Retrieve a list of companies with optional filtering and pagination.

Parameters:

ParameterTypeRequiredDescription
limitINTNoMaximum companies to return (1-250)
pageINTNoPage number for pagination
queryTEXTNoSearch query to filter companies
filterTEXTNoJSON filter object
orderTEXTNoSort order
withTEXTNoInclude related data: leads, contacts

Configuration Example:

{
  "limit": 50,
  "query": "{{ctx.vars.companySearch}}",
  "with": "leads,contacts"
}

getCompany

Retrieve a single company by its ID.

Parameters:

ParameterTypeRequiredDescription
companyIdTEXTYesCompany ID
withTEXTNoInclude related data: leads, contacts

Configuration Example:

{
  "companyId": "{{ctx.vars.companyId}}",
  "with": "contacts"
}

createCompany

Create a new company with optional custom fields.

Parameters:

ParameterTypeRequiredDescription
nameTEXTNoCompany name
responsibleUserIdINTNoResponsible user ID
customFieldsValuesTEXTNoCustom fields JSON array
tagsTEXTNoTags (comma-separated names)

Configuration Example:

{
  "name": "{{ctx.vars.companyName}}",
  "responsibleUserId": 987654,
  "tags": "partner,enterprise"
}

Success Response:

{
  "id": 456789,
  "name": "Acme Corp"
}

updateCompany

Update an existing company by ID.

Parameters:

ParameterTypeRequiredDescription
companyIdTEXTYesCompany ID to update
nameTEXTNoCompany name
responsibleUserIdINTNoResponsible user ID
customFieldsValuesTEXTNoCustom fields JSON array
tagsToAddTEXTNoTags to add
tagsToRemoveTEXTNoTags to remove

Configuration Example:

{
  "companyId": "{{ctx.nodes.getCompany.outputs.data.id}}",
  "tagsToAdd": "enterprise"
}

Tasks

listTasks

Retrieve a list of tasks with optional filtering and pagination.

Parameters:

ParameterTypeRequiredDescription
limitINTNoMaximum tasks to return (1-250)
pageINTNoPage number for pagination
filterTEXTNoJSON filter object: {"is_completed": false}
orderTEXTNoSort order: complete_till:asc, created_at:desc
entityTypeTEXTNoFilter by entity type: leads, contacts, companies, customers
entityIdINTNoFilter by linked entity ID
responsibleUserIdINTNoFilter by responsible user ID
isCompletedTEXTNoFilter by status: true or false

Configuration Example:

{
  "isCompleted": "false",
  "order": "complete_till:asc",
  "limit": 50
}

Success Response:

{
  "tasks": [
    {
      "id": 567890,
      "text": "Follow up call",
      "entity_id": 123456,
      "entity_type": "leads",
      "complete_till": 1704067200,
      "is_completed": false,
      "responsible_user_id": 987654
    }
  ],
  "page": 1,
  "totalItems": 25
}

getTask

Retrieve a single task by its ID.

Parameters:

ParameterTypeRequiredDescription
taskIdTEXTYesTask ID

Configuration Example:

{
  "taskId": "{{ctx.vars.taskId}}"
}

createTask

Create a new task linked to an entity.

Parameters:

ParameterTypeRequiredDescription
textTEXTYesTask description
entityIdINTYesID of the entity to link the task to
entityTypeTEXTYesEntity type: leads, contacts, companies, customers
completeTillINTYesDue date as Unix timestamp
taskTypeIdINTNoTask type ID (1=call, 2=meeting, etc.)
responsibleUserIdINTNoResponsible user ID

Configuration Example:

{
  "text": "Follow up with customer",
  "entityId": "{{ctx.nodes.createLead.outputs.data.id}}",
  "entityType": "leads",
  "completeTill": 1704067200,
  "taskTypeId": 1
}

Success Response:

{
  "id": 678901,
  "text": "Follow up with customer",
  "entity_id": 789012,
  "entity_type": "leads",
  "complete_till": 1704067200,
  "task_type_id": 1
}

updateTask

Update an existing task by ID.

Parameters:

ParameterTypeRequiredDescription
taskIdTEXTYesTask ID to update
textTEXTNoTask description
completeTillINTNoDue date as Unix timestamp
taskTypeIdINTNoTask type ID
responsibleUserIdINTNoResponsible user ID

Configuration Example:

{
  "taskId": "{{ctx.vars.taskId}}",
  "completeTill": 1704672000,
  "responsibleUserId": 987654
}

completeTask

Mark a task as completed with optional result text.

Parameters:

ParameterTypeRequiredDescription
taskIdTEXTYesTask ID to complete
resultTextTEXTNoResult/outcome text

Configuration Example:

{
  "taskId": "{{ctx.nodes.getTask.outputs.data.id}}",
  "resultText": "Customer confirmed meeting for next week"
}

Success Response:

{
  "id": 567890,
  "is_completed": true,
  "result": {
    "text": "Customer confirmed meeting for next week"
  }
}

Pipelines

listPipelines

Retrieve all pipelines with their statuses.

Parameters: None

Configuration Example:

{}

Success Response:

{
  "pipelines": [
    {
      "id": 1,
      "name": "Sales Pipeline",
      "statuses": [
        {"id": 142, "name": "New", "sort": 10},
        {"id": 143, "name": "Qualified", "sort": 20},
        {"id": 144, "name": "Negotiation", "sort": 30}
      ]
    }
  ]
}

getPipeline

Retrieve a single pipeline by its ID with all statuses.

Parameters:

ParameterTypeRequiredDescription
pipelineIdTEXTYesPipeline ID

Configuration Example:

{
  "pipelineId": "{{ctx.vars.pipelineId}}"
}

Success Response:

{
  "id": 1,
  "name": "Sales Pipeline",
  "statuses": [
    {"id": 142, "name": "New", "sort": 10},
    {"id": 143, "name": "Qualified", "sort": 20},
    {"id": 144, "name": "Negotiation", "sort": 30}
  ]
}

Users

listUsers

Retrieve a list of users in the account.

Parameters:

ParameterTypeRequiredDescription
limitINTNoMaximum users to return (1-250)
pageINTNoPage number for pagination
withTEXTNoInclude related data: role, group

Configuration Example:

{
  "with": "role,group"
}

Success Response:

{
  "users": [
    {
      "id": 987654,
      "name": "John Smith",
      "email": "john@example.com",
      "rights": {"is_admin": true}
    }
  ]
}

Triggers

CRM Event

Triggered when CRM entities change (leads, contacts, companies, tasks).

Supported Events

Event CodeEvent NameDescription
add_leadLead CreatedTriggered when a new lead is created
update_leadLead UpdatedTriggered when a lead is modified
delete_leadLead DeletedTriggered when a lead is deleted
restore_leadLead RestoredTriggered when a deleted lead is restored
status_leadLead Status ChangedTriggered when a lead moves to a different pipeline stage
responsible_leadLead Responsible ChangedTriggered when a lead is reassigned
add_contactContact CreatedTriggered when a new contact is created
update_contactContact UpdatedTriggered when a contact is modified
delete_contactContact DeletedTriggered when a contact is deleted
restore_contactContact RestoredTriggered when a deleted contact is restored
responsible_contactContact Responsible ChangedTriggered when a contact is reassigned
add_companyCompany CreatedTriggered when a new company is created
update_companyCompany UpdatedTriggered when a company is modified
delete_companyCompany DeletedTriggered when a company is deleted
restore_companyCompany RestoredTriggered when a deleted company is restored
responsible_companyCompany Responsible ChangedTriggered when a company is reassigned
add_taskTask CreatedTriggered when a new task is created
delete_taskTask DeletedTriggered when a task is deleted
complete_taskTask CompletedTriggered when a task is marked complete
note_leadNote Added to LeadTriggered when a note is added to a lead
note_contactNote Added to ContactTriggered when a note is added to a contact
note_companyNote Added to CompanyTriggered when a note is added to a company

Configuration Options

OptionTypeRequiredDefaultDescription
eventsTEXTYes-Event types to trigger on (select from available values)
accountIdTEXTNo-Expected account ID for webhook verification (recommended for security)

Event Payload Examples

Lead Created (add_lead):

{
  "_eventType": "add_lead",
  "_entity": "leads",
  "_action": "add",
  "_timestamp": "2024-01-15T10:30:00.000Z",
  "data": [
    {
      "id": "123456",
      "name": "New Lead",
      "status_id": "142",
      "price": "50000",
      "responsible_user_id": "987654",
      "pipeline_id": "1",
      "account_id": "12345678"
    }
  ],
  "account": {
    "subdomain": "mycompany",
    "id": "12345678"
  }
}

Lead Status Changed (status_lead):

{
  "_eventType": "status_lead",
  "_entity": "leads",
  "_action": "status",
  "_timestamp": "2024-01-15T11:00:00.000Z",
  "data": [
    {
      "id": "123456",
      "name": "Qualified Lead",
      "status_id": "143",
      "old_status_id": "142",
      "pipeline_id": "1"
    }
  ],
  "account": {
    "subdomain": "mycompany",
    "id": "12345678"
  }
}

Contact Created (add_contact):

{
  "_eventType": "add_contact",
  "_entity": "contacts",
  "_action": "add",
  "_timestamp": "2024-01-15T12:00:00.000Z",
  "data": [
    {
      "id": "789012",
      "name": "John Doe",
      "responsible_user_id": "987654",
      "account_id": "12345678"
    }
  ],
  "account": {
    "subdomain": "mycompany",
    "id": "12345678"
  }
}

Important: amoCRM webhooks require a paid subscription. Free/trial accounts do not have access to the webhooks API.

Webhook Setup: See the Setup Guide for trigger configuration.


Custom Fields

To set custom fields, use the customFieldsValues parameter with JSON:

[
  {
    "field_id": 123456,
    "values": [
      { "value": "example@email.com" }
    ]
  },
  {
    "field_id": 789012,
    "values": [
      { "value": "+1234567890", "enum_code": "WORK" }
    ]
  }
]

Error Handling

The node returns structured errors:

{
  "message": "HTTP 401: Unauthorized",
  "code": "HTTP_401",
  "type": "HTTP_ERROR",
  "operation": "listLeads"
}
Error CodeDescription
HTTP_401Invalid or expired token
HTTP_402Account requires paid subscription (for webhooks)
HTTP_429Rate limit exceeded (max 7 req/sec)
VALIDATION_ERRORInvalid parameters

Use Cases

Lead Qualification Automation

Automatically update lead status and create follow-up tasks when new leads arrive.

Workflow Steps:

  1. amoCRM Trigger: Events = add_lead
  2. amoCRM - getLead: Fetch full lead details
  3. Condition: Check lead source or value
  4. amoCRM - updateLead: Set status to "Qualified"
  5. amoCRM - createTask: Create follow-up call task

Contact Sync with Notifications

Send Telegram notifications when new contacts are created in amoCRM.

Workflow Steps:

  1. amoCRM Trigger: Events = add_contact
  2. Telegram - sendMessage: Notify sales team

Configuration:

{
  "chatId": "{{ctx.vars.salesChannelId}}",
  "text": "New contact: {{ctx.nodes.amocrm_trigger.outputs.data.data[0].name}}"
}

Task Due Date Reminders

Send daily reminders for overdue tasks.

Workflow Steps:

  1. Schedule Trigger: Daily at 9:00 AM
  2. amoCRM - listTasks: Filter overdue, incomplete tasks
  3. Loop: Iterate through tasks
  4. Telegram - sendMessage: Send reminder to responsible user

Pipeline Stage Reporting

Track lead progression through pipeline stages.

Workflow Steps:

  1. amoCRM Trigger: Events = status_lead
  2. amoCRM - getLead: Get full lead details with contacts
  3. amoCRM - getPipeline: Get pipeline info for context
  4. Gmail - sendMessage: Send stage change notification

Lead Assignment Notification

Notify sales reps when they are assigned a new lead.

Workflow Steps:

  1. amoCRM Trigger: Events = responsible_lead
  2. amoCRM - listUsers: Get user details
  3. Telegram - sendMessage: Notify the assigned user

Resources