Description
@call-e/n8n-nodes-calle
This package provides an n8n community node for CALL-E AI-agent phone-call workflows. New nodes use Calls API v2 to create one call, read its result and events, or wait for its business result. The node also executes published Goals.
n8n is a workflow automation platform. CALL-E provides a Developer API for server-side AI-agent phone-call tasks.
Installation
Install this package as an n8n community node:
npm install @call-e/n8n-nodes-calle
For local development, run:
npm install
npm run build
npm run dev
The development server starts n8n with the CALL-E node linked into the local custom nodes directory.
Credentials
Create a CALL-E API credential in n8n with:
API Key: Open CALL-E dashboard → API Keys, then select Create API key in the upper-right corner. The value is stored as a password field.Base URL: Defaults tohttps://api.heycall-e.com.Request Timeout (MS): Timeout for each individual CALL-E API request.Create: Submits one call toPOST /v2/calls. HTTP202means accepted, not answered or completed.Get: Reads the current Call by its API resource ID.Create and Wait: Submits one call, then waits untilresultstatusisavailable,unavailable, ornotapplicable.List Events: Reads one page of persisted Call events usingcursorandlimit. Passnextcursorto read more pages. To poll for new events, keep the last event ID even whennextcursoris null or a subsequent page is empty.List: Lists published Goals. Its Cursor input sends the previousnext_cursoras the API’safterparameter.Get: Gets one published Goal by ID.Create: Creates one phone-specific execution of a published Goal.Get: Gets one Goal Run by Goal ID and Goal Run ID.Create and Wait: Creates a Goal Run, then waits untilresultstatusisavailable,unavailable, ornotapplicable.Phone Number: Required E.164 number, for example+14155550100.Task: Required phone agent task boundary and expected outcome.Idempotency Key: Required, 1–255 characters. Supply a durable business key such asorder-8472-confirmation-1. Keep the same key and exact original inputs across workflow retries; an n8n execution ID changes when a workflow is executed again.Result Schema: Required. A closed object withadditionalProperties: falseand at most 32 string, boolean, integer, or number properties. Nested objects, arrays, null values, and schema combinators are unsupported.Locale: Optional language and locale hint, for exampleen-US.Region: Optional routing or country/region hint, for exampleUS.Metadata: Optional JSON object returned with the call task for business-system correlation.Webhook URL: Optional callback URL for terminal CALL-E events.
Do not expose CALL-E API keys in browser code, workflow logs, screenshots, or issue reports.
Saving credentials checks the configured API with a read-only GET /v2/calls/n8ncredentialtest. A documented 404 not_found confirms authentication without placing a call. Authentication and server failures are reported as errors.
Operations
The node provides Call, Goal, and Goal Run resources.
Call operations:
The node does not expose a Cancel operation. The API supports cancellation before provider submission; it cannot hang up an active call. Stopping an n8n execution does not cancel the telephone call.
Goal operations:
Goal Run operations:
Goal endpoints remain under /v1/goals. Goal Run requests send phone and optional variables; their result schema belongs to the published Goal.
Call Parameters
Create and Create and Wait support:
For example, use this Result Schema and include instructions in Task to return unknown when the call does not establish an answer:
{
"type": "object",
"properties": {
"confirmed": { "type": "string", "enum": ["yes", "no", "unknown"] }
},
"required": ["confirmed"],
"additionalProperties": false
}
Create and Wait also supports:
Polling Interval (MS): How often n8n polls CALL-E for the current call status.Timeout (MS): Maximum total wait time before the node fails.Goal Run Parameters
Create and Create and Wait require:
Goal ID: The public ID of a published CALL-E Goal.Phone Number: An authorized E.164 recipient number.Idempotency Key: A durable key for exactly one business event. Reuse the same key only to retry the identical Goal Run request.Variables: An optional flat JSON object of finite strings, booleans, or numbers accepted by the Goal’s published input schema.Create and Wait continues after status=completed while result_status=pending. It finishes for an unavailable result even when both result and error are null. A timeout does not cancel the Goal Run. Use Get with its Goal Run ID rather than creating another run.
Outputs
The node returns the raw CALL-E API response for the selected operation:
Create returns the accepted Call.Get returns the current Call.Create and Wait returns the Call once resultstatus is available, unavailable, or notapplicable.List Events returns the CALL-E events response.If n8n Continue On Fail is enabled, the node returns an item with an error field instead of stopping the workflow.
Calls v2 and Goal Runs return result, resultstatus, calloutcome, error, and a separate top-level transcript. An available result can be {}. No answer, busy, or declined can produce status=completed with an unavailable business result and no technical error; evaluate the result fields to determine business success.
For Calls, use response id for Get and List Events. Response call_id is a separate Billing identifier and can be null. Never substitute it for the API resource ID.
Migrating existing workflows
Saved nodes with typeVersion: 1 keep the legacy /v1/calls creation, read, event, and result formats. New nodes use version 2. Package updates do not convert old Call IDs or automatically migrate a saved node.
To move a workflow to node version 2:
1. Move the needed fields from the old task and recipient schemas into the required Result Schema field. Flatten nested data; use explicit scalar unknown values where needed. Remove Recipient Result Schema from Additional Fields.
2. Configure a stable business idempotency key and update downstream nodes to read result, error, calloutcome, resultstatus, and top-level transcript.
3. Test an authorized call, then switch new work to version 2. Keep version 1 readers and the existing webhook receiver for accepted legacy calls. Do not submit the same task through both interfaces.
Goal requests, pagination, and result-readiness handling are updated in both node versions. Existing saved Goal inputs remain usable; new Goal Run nodes require an explicit business key.
See the migration guide and legacy retirement notice for the API boundaries and support deadline.
Safety
Phone calls are real-world side effects. Use this node only when the workflow has explicit user intent to place the call.
Operational safeguards:
Create and Wait has a node-level timeout. If it expires, the error includes the accepted API resource ID; resume with Get. A client timeout does not cancel the call. If a creation response was lost before an ID was returned, replay the same key and unchanged request. Do not copy inferred region or locale from a response into the retry, generate a replacement key, or fall back to legacy creation.
Compatibility
This package is intended for current n8n community node development flows using @n8n/node-cli.
Run the local checks before submitting changes:
npm run lint
npm test
npm pack --dry-run
Release
This package is published from this repository through .github/workflows/publish.yml.
To publish a release, make sure package.json and package-lock.json have the target version, then push a matching tag:
git tag v0.2.0
git push origin v0.2.0
The workflow validates that the tag version matches package.json, runs lint, tests, build, and publishes with npm provenance.
For npm Trusted Publishing, configure npm with:
CALLE-AIn8n-nodes-callepublish.ymlIf Trusted Publishing is not configured, add an npm automation token as the GitHub Actions secret NPM_TOKEN.