Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-heymarket
An n8n community node for Heymarket business
texting. Send SMS and MMS from a workflow, keep contacts and lists in sync, and start workflows
from inbound messages, calls, and opt-outs.
Installation · Credentials · Operations ·
Triggers · Example workflows · Things worth knowing
Installation
On n8n Cloud
Search for Heymarket in the nodes panel and add it to your workflow.
On self-hosted n8n
Go to Settings → Community Nodes → Install, enter n8n-nodes-heymarket, and confirm.
Or install manually in your n8n data directory:
npm install n8n-nodes-heymarket
Credentials
You authenticate with a Heymarket API key that is specific to n8n.
- In Heymarket, open Manage Integrations and generate an n8n API key. You need to be an
owner or admin of the account. - Copy the key. It is shown once and cannot be retrieved again — if you lose it, generate a
new one, which invalidates the old. - In n8n, create a new Heymarket API credential and paste the key.
- Save. n8n checks the key immediately and shows which Heymarket team it belongs to. Name the
credential after that team, especially if you plan to connect more than one.
Base URL should be left at https://api.heymarket.com unless Heymarket support asks you to
change it.
A key belongs to exactly one Heymarket team. To work with several teams, create one credential per
team and pick the right one on each node. Note that n8n does not allow choosing a credential with
an expression, so routing an item to a different team at runtime means a Switch node with one
branch per team.
A Heymarket Zapier key will not work here. The two are independent, so revoking one does not
affect the other.
Operations
Message
- Send Custom Message — send a message with text you provide
- Send Template Message — send a message built from a saved Heymarket template, with merge fields
filled in by Heymarket
Both take an inbox and a recipient phone number in E.164 format, for example +15005550001.
Contact
- Create or Update Contact — create a contact, or update the existing one when the phone number is
already known
Optional fields are only sent when you fill them in, so leaving a box empty never clears a value
already stored in Heymarket. Custom fields are picked from a dropdown of the fields configured on
your Heymarket account, so there is no field name to type by hand. Fields with no name set are not
offered, and where two fields share a name only one entry appears.
List
- Add Contact to List — add a contact to a list
- Remove Contact From List — remove a contact from a list
Triggers
The Heymarket Trigger node starts a workflow when one of these happens:
| Event | Fires when |
|---|---|
| Incoming Message | A contact sends a message |
| Outgoing Message | A team member sends a message |
| Opt-Out Received | A contact replies with an opt-out keyword |
| Incoming Call | An inbound phone call is received |
| Chat Started (Inbound) | A contact starts a new conversation |
| Chat Started (Outbound) | A team member starts a new conversation |
| New or Updated Contact | A contact is created or updated |
Every event except New or Updated Contact is scoped to one or more inboxes, which you select on the
node. New or Updated Contact applies to the whole account, because contacts do not belong to an inbox.
Subscriptions are created when you activate the workflow and removed when you deactivate
it.
Example workflows
Auto-reply to an inbound message
Heymarket Trigger (Incoming Message)
→ IF (message contains "hours")
→ Heymarket (Message → Send Template Message: "Business Hours")
Send a text when a deal closes in your CRM
CRM Trigger (Deal won)
→ Heymarket (Contact → Create or Update Contact)
→ Heymarket (Message → Send Custom Message)
Keep an onboarding list in sync
Schedule Trigger (daily)
→ HTTP Request (fetch new signups)
→ Heymarket (Contact → Create or Update Contact)
→ Heymarket (List → Add Contact to List)
Handle opt-outs in your own systems
Heymarket Trigger (Opt-Out Received)
→ HTTP Request (mark unsubscribed in your CRM)
Things worth knowing
Webhook URLs must be publicly reachable over HTTPS. Heymarket refuses to deliver to private,
loopback, or link-local addresses. For local development, run n8n start --tunnel or use an n8n
instance on a real domain.
A successful send means accepted, not delivered. The node returns as soon as Heymarket accepts
the message and queues it with the carrier. Carrier-level delivery failures happen after that and
are not reported back to the workflow.
Messages sent by integrations do not fire the Outgoing Message trigger. That includes messages this
node sends, which means a workflow that both watches Outgoing Message and sends messages will not
trigger itself. It also means such a workflow cannot observe traffic from other integrations.
Opt-outs stop a send. Sending to a contact who has opted out fails the item rather than
silently discarding it. Turn on Continue On Fail if you want the rest of a batch to proceed.
Make trigger workflows idempotent. Delivery is at-most-once, but a retry on your side or a
duplicate inbound event should not double-process.
Archived and private lists and templates do not appear in the dropdowns.
Deactivate before deleting. n8n only removes Heymarket subscriptions when a workflow is
deactivated. Deleting an active workflow outright leaves the subscription in place for a while.
Compatibility
Requires n8n 1.x and Node.js 20.15 or later.
Resources
Development
npm install
npm run dev # runs n8n with this node loaded, rebuilding on change
npm run lint # n8n's community-node lint rules
npm test # unit tests
npm run build # compile to dist/