n8n workflow notifications on your iPhone
n8n can already send notifications in many ways, including a built-in Pushover node and chat apps. Each of them sends every message on its own. Honk adds what workflows need once they run unattended: repeats fold into one group, a failure and its recovery stay together, and retries never notify twice.
This guide covers both options: the Honk community node, and the plain HTTP Request node for instances that can’t install community nodes. Then it builds an error workflow that reports every failed execution.
Before you start
- A Honk account (invite-only for now: request access) and a project for your workflows with an ingestion key: in the web app, open the project, then Keys.
- n8n 1.x or 2.x.
Option 1: the Honk node
On self-hosted n8n, install the community node from Settings ▸ Community Nodes, or with npm:
# Self-hosted n8n: Settings → Community Nodes → Install → n8n-nodes-honk
# Without the UI (Docker or npm installs), in the n8n user folder:
cd ~/.n8n/nodes && npm install n8n-nodes-honk
# then restart n8nCreate a Honk API credential with the server URL and the ingestion key. Test checks the key without sending anything to your phone. Then add Honk ▸ Send message to a workflow:
1. Settings → Community Nodes → Install → n8n-nodes-honk
2. Credentials → New → Honk API
Server URL: https://honk-me.app
Ingestion Key: honk_…
(Test checks the key; nothing is sent to your phone)
3. Add the node Honk → Send message
Message: Wants a quote for an online shop, budget €4,000. Reply within a day.
Title: New request from Ana Pop
Severity: Light Honk (Info)
Additional Fields
Priority: High
Category: Customers
Source: n8n
Group Key: requests/{{ $json.id }}
Options
Idempotency Key: request-{{ $json.id }} (default: execution + node + item)
4. Node Settings → Retry On Fail: on (the same key, so never a duplicate)The node sends one request per input item. Each item gets an idempotency key, built by default from the execution, the node and the item, so Retry On Fail is safe: a retry returns the original event instead of sending a second push.
When the same event can show up in different executions, like a webhook the sender delivers twice, set your own key under Options ▸ Idempotency Key, for example request-{{ $json.body.id }}. Honk accepts each key once every 24 hours.
Option 2: the HTTP Request node
On n8n Cloud, or anywhere community nodes are turned off, the built-in HTTP Request node does the same job with a few more fields to fill in. Store the key in an n8n credential (Header Auth), never in the node itself:
HTTP Request node
Method: POST
URL: https://honk-me.app/v1/messages
Authentication: Generic Credential Type → Header Auth
Name "Authorization", Value "Bearer honk_…" (an n8n credential)
Header: Idempotency-Key = {{ $execution.id }}-{{ $runIndex }}
Settings: Retry On Fail (3 tries, 2000 ms)
Body (JSON):
{
"title": "New request from Ana Pop",
"message": "Wants a quote for an online shop, budget €4,000. Reply within a day.",
"severity": "light",
"priority": "high",
"category": "customers",
"source": "n8n",
"group_key": "requests/{{ $json.id }}"
}The idempotency header uses the execution ID and the run index, so Retry On Fail reuses it.
Report every failed execution
n8n runs an error workflow whenever a workflow that points to it fails. Build one that sends the failure to Honk, grouped per workflow:
Workflow "Honk: workflow errors"
1. Error Trigger
2. Honk → Send message
Message: {{ $json.execution.error.message }}
Title: n8n: {{ $json.workflow.name }} failed
Severity: Long Honk (Error)
Additional Fields
Event Type: Problem
Group Key: n8n/{{ $json.workflow.id }}
Source: n8n
Category: Automation
URL: {{ $json.execution.url }}
Options
Idempotency Key: n8n-error-{{ $json.execution.id }}
Then, in every workflow that should report: Settings → Error Workflow → "Honk: workflow errors"Each workflow gets its own group, n8n/<workflow id>. The first failure arrives as a Long honk with a link to the failed execution. If the workflow keeps failing every five minutes, you get calm updates with a count instead of a push for every execution.
Try it with a webhook
The node’s repository has an example workflow, examples/quote-request.json: a webhook receives a quote request and Honk pushes it, one group per request. Import it with Workflows ▸ Import from File, pick your Honk credential, activate it and send it a request:
curl -X POST https://your-n8n.example.com/webhook/quote-request \
-H 'Content-Type: application/json' \
-d '{"id": 4812, "name": "Ana", "email": "[email protected]", "summary": "3 rooms, 2 bathrooms"}'What Honk adds to n8n
A notification node sends a message. Honk keeps one group per ongoing issue, decides when your phone should buzz, closes the incident when it recovers, and shows your workflows next to your servers, scripts and home in one inbox, with quiet hours and a digest for routine runs.
Honk is invite-only for now: request access. Everything in this guide works on the Free plan.