> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slng.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# n8n

> The n8n-nodes-slng community node runs SLNG text to speech, speech to text, and voice-agent calls inside n8n workflows, plus a trigger a voice agent can call mid-call.

`n8n-nodes-slng` is a community node for [n8n](https://n8n.io/). It brings two
nodes to your workflows: **SLNG**, which runs text to speech, speech to text, and
outbound voice-agent calls, and **SLNG Trigger**, which lets a voice agent call a
workflow as a tool mid-call. Both share one credential and reach every model on
the platform.

This page is the node reference. For a step-by-step setup walkthrough, see the
[n8n integration guide](/guides/integrate/n8n). To wire a workflow up as an agent
tool, see [Use n8n for tools](/guides/agents/tools-and-mcp/n8n-for-tools).

## Install

In your n8n instance, go to **Settings → Community Nodes**, click **Install**,
and enter the package name:

```text theme={null}
n8n-nodes-slng
```

Restart n8n after installing or upgrading.

<Note>
  This is a community node, so it needs a self-hosted n8n instance. n8n Cloud does
  not support unverified community nodes.
</Note>

## Credentials

Create an SLNG key in the [dashboard](https://app.slng.ai/api-keys), or see
[Create your API key](/guides/get-started/quickstart#create-your-api-key), then
add a **SLNG API** credential in n8n and paste it. The key is sent as a Bearer
token and validated against `GET https://api.slng.ai/v1/me`. The same credential
covers both the Voice API (`api.slng.ai`) and the Agents API
(`api.agents.slng.ai`), so every SLNG node in a workflow can share it.

## The SLNG node

The **SLNG** node runs one operation per item:

| Resource       | Operation     | What it does                                                                                                                   |
| -------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Text to Speech | Generate      | Converts text into spoken audio, returned as a binary file on the item.                                                        |
| Speech to Text | Transcribe    | Transcribes an audio file from a binary field into text.                                                                       |
| Agent          | Dispatch Call | Places an outbound phone call from an SLNG voice agent. Checks the agent has outbound telephony configured before dispatching. |

The **Model** field (and the **Voice** field for Text to Speech) is a dropdown
populated live from the catalog; the voice list is filtered to the chosen text to
speech model. Switch either to **By ID** to enter a model path or voice ID
directly.

## The SLNG Trigger node

The **SLNG Trigger** node registers a webhook tool on an existing agent when you
activate the workflow, and removes it when you deactivate. When the agent calls
the tool during a call, the workflow runs.

* **Tool type**: an **LLM tool (contextual)** lets the agent decide when to call
  it, and you define the parameters it sends with a field builder (name, type,
  description, required). A **System tool** fires automatically on a call
  lifecycle event (call start, first user message, call end, tool succeeded or
  failed).
* **Authentication**: **HMAC** (SLNG signs the body with `X-Signature-256`) or
  **Bearer**. Leave the secret empty to auto-generate one on activation; the node
  registers it with SLNG and validates incoming requests.
* **Respond**: **Using Last Node** (default) returns the workflow's final output
  to the agent. **Immediately** acknowledges the call and runs the workflow in the
  background. To shape the JSON the agent receives, keep **Using Last Node** and
  have the final node emit the object you want.

<Note>
  n8n blocks expression access to `$json.arguments`, so the trigger exposes the
  agent's tool arguments as `toolArguments`. Reference them downstream with
  `{{$json.toolArguments}}` or `{{$json.toolArguments.fieldName}}`.
</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="n8n guide" icon="book-open" href="/guides/integrate/n8n">
    A step-by-step setup walkthrough for both nodes.
  </Card>

  <Card title="Use n8n for tools" icon="wrench" href="/guides/agents/tools-and-mcp/n8n-for-tools">
    Give an agent workflow-backed tools with the trigger node.
  </Card>

  <Card title="Outbound calls" icon="phone-outgoing" href="/guides/agents/telephony/outbound">
    Set up the outbound telephony that Dispatch Call uses.
  </Card>

  <Card title="GitHub repo" icon="github" href="https://github.com/slng-ai/n8n-nodes-slng">
    Setup guide, version history, and ready-made workflow templates.
  </Card>
</CardGroup>
