Skip to main content
Sniko agents can call external tools in real time during a conversation. These tools are registered once per account and then referenced in the ElevenLabs agent configuration as HTTP tool calls. All tool endpoints are public (no authentication required) so ElevenLabs can call them directly. They are protected by rate limiting: 60 requests per minute across all tool endpoints.

Registering tools

Go to Tools in the sidebar. Each tool type has a Register button. Registering creates the tool definition in ElevenLabs under your account’s namespace and makes it available to assign to agents. You can delete a tool at any time. Deleting removes it from ElevenLabs and from your agents that reference it.

Available tools

SMS

Send an SMS to a phone number via Twilio or another configured provider.

Email

Send a transactional email.

WhatsApp

Send a WhatsApp message via Twilio.

Slack

Post a notification to a Slack channel.

Zapier / Make

Trigger a Zapier or Make.com automation.

Google Sheets

Append a row to a Google Sheet.

Custom Webhook

POST structured data to any HTTP endpoint you configure.

SMS tool

Endpoint: POST /tools/sms Sends an SMS message using the MultiProviderSmsService, which supports Twilio and other configured SMS providers.

Parameters

ParameterTypeRequiredDescription
tostringYesRecipient phone number in E.164 format
bodystringYesMessage text (max 1,600 characters)
fromstringNoSender number or messaging service SID
messaging_service_sidstringNoTwilio Messaging Service SID
providerstringNoOverride the SMS provider (e.g. twilio)
agent_idstringNoElevenLabs agent ID for quota attribution
conversation_idstringNoConversation ID for logging

Example request

{
  "tool_call_id": "tc_abc123",
  "input": {
    "to": "+12025550101",
    "body": "Hi Alice, your appointment is confirmed for tomorrow at 10am.",
    "agent_id": "agent_xyz",
    "conversation_id": "conv_123"
  }
}

Example response

{
  "ok": true,
  "tool_call_id": "tc_abc123",
  "result": {
    "message_sid": "SMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "status": "sent",
    "to": "+12025550101",
    "provider": "+19995550000"
  }
}

Idempotency

The SMS tool is idempotent on tool_call_id. If ElevenLabs retries a tool call, the same tool_call_id returns the original result without sending a duplicate message.

Quota

SMS messages count against the sms_messages quota feature on your subscription plan. If the quota is exceeded the endpoint returns 429 with a quota_info object showing current usage.

Email tool

Endpoint: POST /tools/email Sends a transactional email. Register the tool from the Tools page; configuration (SMTP or API credentials) is set in the platform settings.

WhatsApp tool

Endpoint: POST /tools/whatsapp Sends a WhatsApp message via the Twilio WhatsApp Business API. The platform Twilio credentials and WhatsApp sender number must be configured in the application environment.

Parameters

ParameterTypeRequiredDescription
tostringYesRecipient phone number in E.164 format
bodystringYesMessage text (max 1,600 characters)
fromstringNoOverride the sender WhatsApp number
agent_idstringNoElevenLabs agent ID for tracking
conversation_idstringNoConversation ID for logging

Example request

{
  "tool_call_id": "tc_def456",
  "input": {
    "to": "+12025550102",
    "body": "Your order has shipped! Track it at example.com/track",
    "agent_id": "agent_xyz"
  }
}

Example response

{
  "ok": true,
  "tool_call_id": "tc_def456",
  "result": {
    "message_sid": "MMxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "status": "queued",
    "to": "+12025550102",
    "sent_at": "2026-03-25T10:00:00.000Z"
  }
}
Sniko automatically adds the whatsapp: prefix to the to and from numbers before calling Twilio. You do not need to include it in your tool call parameters.

Slack tool

Endpoint: POST /tools/slack Posts a notification message to a configured Slack channel. The Slack webhook URL is configured in the platform settings.

Zapier / Make tool

Endpoint: POST /tools/zapier Triggers a Zapier (or Make.com) automation by sending a payload to the configured webhook URL. Use this to connect agent conversations to CRMs, ticketing systems, or any other platform Zapier supports.

Google Sheets tool

Endpoint: POST /tools/google-sheets Appends a row to a designated Google Sheet. The Google Sheets credentials and target spreadsheet are configured in the platform settings.

Custom webhook tool

Endpoint: POST /tools/custom-webhook Sends a structured POST request to any HTTP endpoint you configure. Use this to integrate with internal APIs or services not covered by the built-in tools.

How agents call these tools

Once a tool is registered, assign it to an agent inside the ElevenLabs agent configuration as an HTTP tool. ElevenLabs will call the tool endpoint during conversations when the agent decides to use it.
// Example ElevenLabs agent tool definition (configured in ElevenLabs)
{
  "name": "send_sms",
  "type": "client_tool",
  "description": "Send an SMS message to a phone number.",
  "http": {
    "method": "POST",
    "url": "https://yourapp.example.com/tools/sms"
  },
  "input_schema": {
    "type": "object",
    "required": ["to", "body"],
    "properties": {
      "to": {
        "type": "string",
        "description": "E.164 phone number (e.g. +1234567890)"
      },
      "body": {
        "type": "string",
        "maxLength": 1600,
        "description": "SMS message content"
      }
    }
  }
}
ElevenLabs passes agent_id and conversation_id automatically in the tool call payload. The tool uses these to attribute usage and logs to your account.

Rate limiting

All tool endpoints share a 60 requests per minute rate limit enforced by the throttle:60,1 middleware. Requests exceeding the limit receive a 429 Too Many Requests response.
Tool endpoints are unauthenticated by design — they must be reachable by ElevenLabs without a session cookie. Do not place sensitive business logic inside these endpoints without additional validation.

Build docs developers (and LLMs) love