amoCRM - Setup Guide
Setup and configuration guide for amoCRM integration
amoCRM (Kommo) CRM integration for workflow automation with Axellero.
For detailed instructions on managing credentials, connectors, and triggers in Axellero Studio, see the Integration Guide.
Step 1: Create Credential
Getting Credentials from amoCRM
- Log in to your amoCRM/Kommo account
- Go to Settings (gear icon) -> Integrations
- Click Create Integration -> Select Private Integration
- Fill in the integration details:
- Name: "Axellero Integration"
- Redirect URI: Your Axellero callback URL
- Save and note the Client ID and Client Secret
- In the integration settings, click Keys and Access to get the authorization code
OAuth Authorization Flow
-
Direct users to the authorization URL:
https://{subdomain}.kommo.com/oauth?client_id={clientId}&state={state}&redirect_uri={redirectUri} -
After authorization, exchange the code for tokens:
POST https://{subdomain}.kommo.com/oauth2/access_token { "client_id": "your_client_id", "client_secret": "your_client_secret", "grant_type": "authorization_code", "code": "authorization_code", "redirect_uri": "your_redirect_uri" } -
Store both access_token and refresh_token
Important: amoCRM uses rolling refresh tokens. Each time you refresh, the old refresh token becomes invalid. Always store the new refresh token.
Adding Credential to Axellero
- Navigate to Application > Integrations > Credentials
- Click "Add Credential"
- Select OAuth 2.0
- Enter:
- Name: "amoCRM Production"
- Client ID: From amoCRM integration settings
- Client Secret: From amoCRM integration settings
- Authorization URL:
https://{subdomain}.kommo.com/oauth - Token URL:
https://{subdomain}.kommo.com/oauth2/access_token - Scopes: (leave empty - amoCRM uses integration-level permissions)
- Click Save, then "Authorize"
- Log in to your amoCRM account and grant access
Axellero securely encrypts credentials and handles token refresh automatically.
Step 2: Create Connector
- Navigate to Application > Integrations > Connectors
- Click "Add Connector"
- Select amoCRM from the list
- Configure:
- Name: "amoCRM - Production"
- Credential: Select the OAuth credential you created
- Domain: Your amoCRM subdomain (e.g.,
mycompany.kommo.com)
- Click Save
- Test the connection using the "Test" button
The connector is now available in any workflow or agentflow.
Step 3: Create Trigger
For supported events and payload examples, see main documentation.
3.1 Create Trigger
- Navigate to Integrations > Triggers
- Click "Add Trigger" (+) button
- Select your amoCRM connector
- Configure trigger options (see table below)
- Click Save
Trigger Options
| Option | Type | Required | Description |
|---|---|---|---|
events | TEXT | Yes | Event types to trigger on. Select one or more from the available events list. |
accountId | TEXT | No | Expected amoCRM account ID for webhook verification. Recommended for security to ensure webhooks originate from your account. |
Available Events
| Event Code | Label | Description |
|---|---|---|
add_lead | Lead Created | Triggers when a new lead is created |
update_lead | Lead Updated | Triggers when a lead is modified |
delete_lead | Lead Deleted | Triggers when a lead is deleted |
restore_lead | Lead Restored | Triggers when a deleted lead is restored |
status_lead | Lead Status Changed | Triggers when a lead moves to a different pipeline stage |
responsible_lead | Lead Responsible Changed | Triggers when a lead is reassigned |
add_contact | Contact Created | Triggers when a new contact is created |
update_contact | Contact Updated | Triggers when a contact is modified |
delete_contact | Contact Deleted | Triggers when a contact is deleted |
restore_contact | Contact Restored | Triggers when a contact is restored |
responsible_contact | Contact Responsible Changed | Triggers when a contact is reassigned |
add_company | Company Created | Triggers when a new company is created |
update_company | Company Updated | Triggers when a company is modified |
delete_company | Company Deleted | Triggers when a company is deleted |
restore_company | Company Restored | Triggers when a company is restored |
responsible_company | Company Responsible Changed | Triggers when a company is reassigned |
add_task | Task Created | Triggers when a new task is created |
delete_task | Task Deleted | Triggers when a task is deleted |
complete_task | Task Completed | Triggers when a task is marked complete |
note_lead | Note Added to Lead | Triggers when a note is added to a lead |
note_contact | Note Added to Contact | Triggers when a note is added to a contact |
note_company | Note Added to Company | Triggers when a note is added to a company |
How it works: Axellero automatically generates a unique webhook URL and registers it with amoCRM via the API. No manual webhook setup required.
Important: amoCRM webhooks require a paid subscription. Free/trial accounts do not have access to the webhooks API.
3.2 Add Trigger to Workflow
- Open Workflow Builder
- Find your trigger in the Triggers section
- Drag to canvas as starting node
- Build workflow logic after the trigger
3.3 Test the Trigger
- Create or update an entity in amoCRM (e.g., add a new lead)
- Check workflow execution logs in Axellero
- Verify trigger data via
{{ctx.nodes.amocrm_trigger.outputs.data}}
Workflow Examples
Example 1: New Lead Notification
Send a Telegram notification when a new lead is created.
Workflow Steps:
- amoCRM Trigger: Events =
add_lead - Telegram - sendMessage: Send notification
Configuration:
{
"chatId": "{{ctx.vars.salesChannelId}}",
"text": "New lead: {{ctx.nodes.amocrm_trigger.outputs.data.data[0].name}}\nPrice: {{ctx.nodes.amocrm_trigger.outputs.data.data[0].price}}"
}Example 2: Lead Stage Change Handler
Create a follow-up task when a lead moves to a specific stage.
Workflow Steps:
- amoCRM Trigger: Events =
status_lead - Condition: Check if
status_idmatches target stage - amoCRM - createTask: Create follow-up task
Task Configuration:
{
"text": "Follow up on qualified lead",
"entityId": "{{ctx.nodes.amocrm_trigger.outputs.data.data[0].id}}",
"entityType": "leads",
"completeTill": "{{ctx.vars.nextWeekTimestamp}}",
"taskTypeId": 1
}Example 3: Contact-Lead Linking
Automatically link new contacts to existing leads based on email domain.
Workflow Steps:
- amoCRM Trigger: Events =
add_contact - amoCRM - listLeads: Search for leads with matching company
- Condition: Check if matching lead exists
- amoCRM - updateContact: Link contact to lead
Example 4: Daily Task Summary
Send a daily email summary of incomplete tasks.
Workflow Steps:
- Schedule Trigger: Daily at 8:00 AM
- amoCRM - listTasks: Get incomplete tasks due today
- Loop: Format task list
- Gmail - sendMessage: Send summary to manager
Task Filter Configuration:
{
"isCompleted": "false",
"order": "complete_till:asc",
"limit": 50
}Example 5: Lead Assignment Notification
Notify sales reps when they are assigned a new lead.
Workflow Steps:
- amoCRM Trigger: Events =
responsible_lead - amoCRM - listUsers: Get user details
- Telegram - sendMessage: Notify the assigned user
Troubleshooting
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Token expired or invalid | Re-authorize in credential settings |
| 402 Payment Required | Webhooks need paid plan | Upgrade amoCRM subscription |
| 403 Forbidden | Integration lacks permissions | Check integration permissions in amoCRM |
| 429 Too Many Requests | Rate limit exceeded (7 req/sec) | Implement delays between operations |
| Connection test fails | Invalid domain or token | Verify domain format and re-authorize |
Common Issues
Token refresh failing
- amoCRM uses rolling refresh tokens - each refresh invalidates the old token
- If refresh fails, re-authorize from scratch in credential settings
- Ensure your integration has refresh token permissions
Trigger not firing
- Verify amoCRM account has paid subscription (webhooks require paid plan)
- Check event types match what you are testing
- Verify connector credentials are valid
- Check Axellero logs for webhook registration errors
Webhooks receiving 402 error
- amoCRM webhook API requires a paid subscription
- Free and trial accounts cannot register webhooks
- Upgrade your amoCRM plan to enable triggers
Custom fields not saving
- Verify
field_idvalues are correct (get from amoCRM API) - Ensure
valuesarray format is correct - Check field type matches value type (text, number, enum)
Security Best Practices
- Store credentials in Axellero Credential Manager (encrypted)
- Use Account ID verification in triggers for additional security
- Rotate integration credentials periodically in amoCRM
- Use minimum required integration permissions
- Monitor API usage in amoCRM analytics