n8n
The n8n-nodes-honk community node adds one action, Honk → Send message, with every field of the API. Every item gets an idempotency key, so Retry On Fail never notifies twice.
- Package
-
n8n-nodes-honkPublished - Source
- github.com/honk-me/honk-n8n · MIT License
- Requirements
- Self-hosted n8n 1.x or 2.x with community nodes enabled.
Install
From the n8n UI, or with npm in the n8n user folder.
# 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 n8n Credential and node
Create a Honk API credential with the server URL and a project’s ingestion key. Test checks the key without sending anything to your phone. Then add the node to any 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) What it outputs
One item per input item, with Honk’s answer. accepted means Honk has saved the message; grouping and pushing happen after that.
{ "id": "msg_01k6…", "status": "accepted", "duplicate": false, "received_at": "2026-10-04T12:20:05.123Z" } Retries never notify twice
The default key is n8n-<execution id>-<node id>-<item index>, so Retry On Fail and retries within one execution reuse it. When the same event can arrive in different executions, such as a webhook delivered twice, set your own key under Options, for example request-{{ $json.body.id }}.
Without installing anything
n8n Cloud or locked-down instances can use the built-in HTTP Request node instead:
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 }}"
} An example workflow
The repository has examples/quote-request.json: a webhook receives a quote request and Honk pushes it, one group per request. Import it, pick your credential and try it:
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"}'