Reaching your customer: messaging nodes
A workflow that decides correctly and tells nobody has done nothing. This lesson is about the last node — the one that reaches an actual human — and about the fact that the channel you pick decides more of your build than any other choice except the trigger.
Every node in this lesson is irreversible. The product classifies sends as external and irreversible, and it means it: there is no unsend. Up to now a mistake cost you a wrong CRM field. From here a mistake reaches a customer. Test with your own address before you test with anyone else's.
Two ways to send, and they are not interchangeable
Almost every send you build is one of these two, and picking the wrong one is the most common structural mistake in this part of the product.
| Send Template Message | Email Send | |
|---|---|---|
| What it sends | a template from your library, by id | content you write in the node itself |
| Channels | email · sms · whatsapp | email only |
| Who it goes to | a contact, resolved from CRM data | an address you supply |
| Tracked in Marketing | yes — it creates a campaign, so opens and clicks are attributable | no |
| Reach for it when | the message is a repeatable business message: a welcome, a reminder, a receipt | the message is one-off, internal, or assembled from workflow data |
What it sends
- Send Template Message
- a template from your library, by id
- Email Send
- content you write in the node itself
Channels
- Send Template Message
email · sms · whatsapp- Email Send
- email only
Who it goes to
- Send Template Message
- a contact, resolved from CRM data
- Email Send
- an address you supply
Tracked in Marketing
- Send Template Message
- yes — it creates a campaign, so opens and clicks are attributable
- Email Send
- no
Reach for it when
- Send Template Message
- the message is a repeatable business message: a welcome, a reminder, a receipt
- Email Send
- the message is one-off, internal, or assembled from workflow data
The send you have already run
Five fields, and three of them are about resolving who this is going to.
Scroll for all 4 steps →
A reply is not a send
There is a third shape, and it is easy to miss because it looks like the other two. WhatsApp Output replies inside a conversation that is already open — which means it only works in a workflow that a WhatsApp message started. It is not a way to message someone out of the blue.
- Proactive — you start the conversation. Send Template Message, with a template. Works from any trigger.
- Reactive — they started it. WhatsApp Output, in a workflow whose trigger was their message. Free-form, because a conversation is open.
This distinction is not Expedify's invention. It is how WhatsApp itself works, and every platform has to obey it. Understanding it once explains a whole category of “why won't this send?”.
What each channel costs you before it works
This is the wall people hit, and it is better to hit it now, on a page, than three hours into a build:
| Channel | What you need first | How hard |
|---|---|---|
| Web chat | nothing — it is built in | start here |
| an email integration connected, and a sending domain you have verified | an afternoon, mostly waiting for DNS | |
| a Business Solution Provider account, a connected number, and a template approved by Meta before you may send it | days, and the approval is not yours to rush | |
| SMS | a provider, and sender-id rules that differ by country | varies wildly by country |
Web chat
- What you need first
- nothing — it is built in
- How hard
- start here
- What you need first
- an email integration connected, and a sending domain you have verified
- How hard
- an afternoon, mostly waiting for DNS
- What you need first
- a Business Solution Provider account, a connected number, and a template approved by Meta before you may send it
- How hard
- days, and the approval is not yours to rush
SMS
- What you need first
- a provider, and sender-id rules that differ by country
- How hard
- varies wildly by country
The WhatsApp template rule catches everyone. You cannot send WhatsApp text you just wrote to someone who has not messaged you. You send an approved template, and the send node needs four separate ids to do it — the template, the integration, plus the segment and campaign that track it. This is why a WhatsApp build is never “just add a send node”, and why the sensible order is to get the workflow right on email first and switch the channel once the logic is proven.
Where the recipient comes from
Look again at the send node above. There is no “To” field, and that surprises people who expect one. Instead there is contact_source and contact_input_variable — because the node addresses a CRM contact, not an address. You hand it the contact and it resolves the email or the number from the record.
That is why lesson 1's send needs only {{new_contact.new_data.id}} and lesson 2's scheduled version needs only {{each.current_item.id}}. Same node, same field, different source — and neither one ever handles an email address directly. Keeping contact details in the CRM instead of in workflow config is what makes an unsubscribe or a corrected number work everywhere at once.
The product's own warning on this node: WhatsApp send needs channel: whatsapp + FOUR ids (template_id, integration_id, workflow_segment_id, workflow_campaign_id).
Also contact_input_variable + a tracking_options.template_parameters typed map (param_N: {type, field, entity}).
Key takeaways
- Sends are irreversible. Test on yourself first — the product classifies these nodes accordingly.
- Send Template Message for repeatable business messages; Email Send for one-off content you write.
- A reply inside a live chat (WhatsApp Output) is a different node from a proactive send, and only works when their message started the workflow.
- Web chat needs nothing, email needs a verified domain, WhatsApp needs a BSP and an approved template.
- A send node addresses a contact, not an address — it resolves the details from the CRM record.
- Build and prove the logic on email, then switch the channel.
Try it yourself
Pick the message you would most like to automate and answer the two questions that decide the whole build before you open the builder: is it proactive or a reply, and does it already exist as an approved template? Those two answers choose your node, your channel, and how long you will be waiting before anything can send.
Next: Go live — activating a workflow, and adapting a real marketplace template into your own org.
Related lessons
Base rates — what a piece of evidence is actually worth
A face-recognition system that is 99.9% accurate and almost entirely wrong, and a number that sent an innocent woman to prison. Both are the same arithmetic, and it is the arithmetic that decides what any piece of evidence is worth.
ReadConfirmation and survivorship — what you never looked for
Two questions about evidence you did not go looking for. One is a rule you have to discover, and one is a pattern in five famous people — and in both, the thing that would have told you the truth is the thing nobody checks.
ReadLoss aversion, sunk cost and regression — what it costs you
Four questions you answer about yourself rather than about a scenario, and your own answers are the finding. Then the pattern that makes praise look useless and criticism look like it works, whatever you actually do.
Read
