heymarket

n8n community node for Heymarket business texting

Package Information

Released: this month
Downloads: 0 weekly / 0 monthly
Latest Version: 0.1.1
Author: Heymarket

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.

  1. In Heymarket, open Manage Integrations and generate an n8n API key. You need to be an
    owner or admin of the account.
  2. Copy the key. It is shown once and cannot be retrieved again — if you lose it, generate a
    new one, which invalidates the old.
  3. In n8n, create a new Heymarket API credential and paste the key.
  4. 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/

License

MIT

Discussion