All nodes/Integrations/amoCRM
amoCRM REST Call
Performs an arbitrary REST request to the amoCRM API v4 (leads/contacts/deals/tasks — any method). Requires amoCRM Config via the 'amocrm_config' port. method/path/body are set in the config (templates supported).
Type in the graph: amocrm_rest_call
Exec
An error branch can be enabled (expose_error_output) to handle failures on their own path.
Try it
Minimal working workflow
- Execute
- Data
- Execute + Data
Pick your own connection or knowledge base first — the graph carries REPLACE_ME.
When to use it
One node for the whole of amoCRM: there are no separate nodes for deals, contacts or tasks — you name the method, the path and the body, and the node takes care of the account address, the authorization header and parsing the reply. Doing the same through HTTP Request is not worth it: you would assemble the host by hand and paste in a token that then lands in the run log.
This is a graph step, not an agent tool: the node has no tool_out port, so a model cannot call
it. To give an agent a CRM call, wrap it in a WF Tool.
How it works
“HTTP Method” is a fixed list of verbs. “Path” and “Body (JSON)” are template fields: the path
starts with a slash (/api/v4/leads, /api/v4/contacts/{{ nodes.pick.output.id }}) and the
domain comes from the connection. An empty body means a request without one.
A successful reply is parsed from JSON and leaves as result — in templates,
{{ nodes.<id>.output.result }}. A reply with no body yields an empty object.
Anything outside the 2xx range stops the node, and a machine-readable code travels with the
message: ACCESS_DENIED for 401 and 403, NOT_FOUND for 404, RATE_LIMIT for 429,
VALIDATION for the other 4xx. Turn on “Error output” and that branch receives an object with
error_code, message and failed_node_id — the code is easy to branch on in an
If node.
Common mistakes
- An array body. The field accepts a JSON object only; a list (the shape amoCRM expects for batch creation) is refused with “body must be a JSON object”.
- JSON broken by substitution. A template value lands in the body verbatim, so quote strings yourself — and an entire object is easier to build with a Template node and drop in as one expression.
- A path without the leading slash, or with a domain. The host comes from the connection; the field holds only the path.
- A body on a GET. Leave the field empty for reads: a non-empty body is sent even with GET.
- Paging. amoCRM returns data in pages; page parameters are appended to the path as an ordinary query string, and the node does not fetch further pages by itself.
Inputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
amoCRM Configamocrm_config | Datadata | — | required |
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Successoutput | Execute + Dataexecute_data | object | |
Erroron_error | Execute + Dataexecute_data | — | shown when expose_error_output = true |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
amoCRM connectionconnection_id | string | "" | Saved workspace amoCRM connection, so a one-call graph does not need a separate amoCRM Config node. A node wired to the 'amocrm_config' port wins over this field. connection: amocrmoverridden by port: amocrm_config |
HTTP Methodmethod | string | GET | HTTP method for the amoCRM REST API v4 (e.g. GET, POST, PATCH) Options: |
Pathpath | string | "" | amoCRM REST API v4 path, e.g. /api/v4/leads (templates supported) supports templates |
Body (JSON)body | string | {} | Request body as JSON (templates supported) supports templates |
Shared fields
Every node has these three — the platform adds them, not the node author.
expose_error_output— When enabled, show an execution output to connect nodes that run if this step fails.