Package Information
Documentation
n8n-nodes-directsaz
n8n community nodes for Directsaz (international brand: Roxjet) — Instagram DM & comment automation.
- Directsaz Trigger — starts a workflow when your Instagram account receives a DM, story reply, comment, live comment, or button postback (delivered by the Directsaz Developer API webhook, HMAC-verified).
- Directsaz — sends replies back: direct messages (text / image / video / audio / PDF / carousel with buttons), private replies to comments, public comment replies, message likes — plus reading your posts and checking whether a user follows you.
Prerequisites
- A Directsaz channel with an active Instagram subscription and a connected Instagram account.
- A developer app created in the Directsaz panel, which gives you:
- the API key
ds_live_…(shown once — store it safely), - a
webhook_tokenyou choose, - an
ip_whitelistthat must include your n8n server's public IP (API calls from other IPs get HTTP 403).
- the API key
Installation
In n8n: Settings → Community Nodes → Install and enter n8n-nodes-directsaz.
Credential setup
Create a Directsaz API credential:
| Field | Value |
|---|---|
| API Key | your ds_live_… key |
| Base URL | https://developers.directsaz.com/api/v1 (default) |
| Webhook Token | the webhook_token of your developer app (needed for the Trigger node) |
Receiving events (Directsaz Trigger)
The order matters, because Directsaz challenges your webhook URL at save time:
- Add the Directsaz Trigger node, select the credential (with Webhook Token set).
- Activate the workflow. The challenge only passes while the workflow is active, and only against the Production webhook URL.
- Copy the node's Production URL and set it as your developer app's
webhook_urlin the Directsaz panel (PUT /developer-app/{channel}/webhook), with the samewebhook_tokenas in the credential. - Directsaz sends the GET challenge; the node answers it automatically. If subscription fails, check that the workflow is active and the tokens match.
Each Instagram event becomes one workflow item, e.g.:
{
"type": "dm",
"account_id": "17841…",
"sender": { "id": "IGSCOPED_USER_ID" },
"message": { "id": "MESSAGE_MID", "text": "hello" },
"actions": {
"dm": { "recipient_id": "IGSCOPED_USER_ID" },
"like": { "recipient_id": "IGSCOPED_USER_ID", "message_id": "MESSAGE_MID" }
}
}
Feed actions.* values straight into the Directsaz node (e.g. Recipient ID = {{ $json.actions.dm.recipient_id }}).
Deliveries are verified against the X-Directsaz-Signature HMAC header (300s clock-skew tolerance) — you can tune or disable this under Options.
Note: repeated failed deliveries (timeouts / non-2xx) cause Directsaz to disable the webhook subscription until you set it again. Keep the workflow active.
Sending (Directsaz node)
| Operation | What it does |
|---|---|
| Send Direct Message | DM by recipient ID — text (+ up to 3 buttons), image, video, audio, PDF, or a 1–10 card carousel |
| Send Private Reply | DM in reply to a comment (same message types) |
| Reply to Comment | Public text reply under a comment (max 2200 chars) |
| Like Message | Like a received DM |
| Get Posts | List the account's Instagram posts (paginated) |
| Check Follow Status | Does this user follow the account? |
A 202 response means queued — delivery to Instagram is asynchronous. Requests that violate Instagram messaging limits are rejected up front with HTTP 422 and a list of field errors. Comment replies share the account's rate budget (550/hour) with panel automations; on limit you get HTTP 429.
Full API reference: the Directsaz Developer API client guide (CLIENT.md).
Development
npm install
npm run build # tsc + copy icons to dist/
To test locally, link the package into your n8n custom nodes directory:
npm run build
mkdir -p ~/.n8n/custom
cd ~/.n8n/custom && npm link n8n-nodes-directsaz
(after npm link in this repo's root), then restart n8n.
License
MIT