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-honk Published
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.

Terminal
# 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.

n8n
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:

n8n
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:

Terminal
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"}'