Phone calls and messages from n8n, cron and scripts

Not every automation is an AI agent. A backup, a deploy pipeline or an n8n workflow can message your phone with one HTTPS request, read your reply, or ring you with a voice AI that explains what failed.

Messages with the REST API

Every action is one HTTPS request with your ak_… API key. On agentring cloud your relay URL is in the dashboard; self-hosted, it's your own relay. Send a message:

curl -s "$AGENTRING_RELAY_URL/v1/messages" \
  -H "Authorization: Bearer $AGENTRING_API_KEY" \
  -H 'content-type: application/json' \
  -d '{"text": "Backup finished"}'

Replies come from GET /v1/messages?after=<msg_id>, or live over the WebSocket. In n8n that's two HTTP Request nodes; the repo has an example workflow.

Your agent gets four tools: send_message (a notification you can reply to), get_replies (your replies, waiting up to an hour if needed), call (the phone rings and the voice AI talks with you) and status.

Calls with the voice AI from the CLI

For a call with the voice AI, use the agentring CLI (a plain REST call only rings the phone: the voice needs a worker in the room, which is the daemon or the MCP call tool):

once
# from a clone of the repo
uv tool install './daemon[voice]'
agentring init --relay <relay-URL> --api-key ak_…
# self-hosted only (on cloud you pair from the dashboard):
agentring pair
agentring msg "Nightly backup finished"
agentring call "The nightly backup failed" --ai

From n8n, run it with an Execute Command node, or use any MCP client node against the hosted MCP URL. call --ai --json prints the whole result: transcript, tool calls and duration.

Your scripts as tools on a call

Tap Call agent in the app and ask by voice. The voice AI asks your agents through consult_agent: each agent in ~/.agentring/agents.yaml is a tool. Run agentring serve --ai on the machine where they live.

~/.agentring/agents.yaml
agents:
  ops:
    description: My ops scripts. Disk, backups, service status.
    command: [~/bin/ops-agent]   # no "{task}": the task arrives on stdin

Any command can be a tool for the voice AI: the task goes in as an argument or on stdin, and stdout is the answer. command is an argv list, never a shell string.

Try it without a call: agentring agents ask ops "…". If the agent takes more than 20 seconds, the call goes on and the answer arrives when it's ready, or as a message if you've already hung up.

Example messages

  • Backup finished: 42 GB, 3 min.
  • Deploy to production is waiting for approval. Reply “yes” to continue.
  • The disk on the build server is at 95%.

FAQ

Can a script call me with a voice AI over plain REST?

A REST call on its own only rings the phone. For the voice AI, use agentring call --ai from the CLI, or the call tool of the MCP server, which runs the voice AI for you (on agentring cloud, on our side).

Is there an n8n example?

Yes, in the repo's examples, along with the OpenAPI description of the REST API.

Let your agent pick up the phone.

Free to start. Open source underneath. Set up in about five minutes.

Free plan, no card · Android · Apache-2.0