whatsapp-sender
WhatsApp sender — one send, policy-checked, never duplicated
Sends text, a quote-reply, an attachment, a reaction, or edits/deletes our own message, after applying the subscription’s responsePolicy (draft, approval, auto, none). Reports sent, failed or uncertain, and never resends an uncertain send.
| Source | templates/whatsapp-sender/workflow.yaml |
| Category | debugging-ops |
| Trigger | called by other workflows · manual (wfx run) |
| Steps | 5 |
| Human approval before | approve |
| Providers named | default (WFX_DEFAULT_PROVIDER) |
Use it
Section titled “Use it”wfx templates whatsapp-senderwfx new whatsapp-sender --as my-whatsapp-senderwfx dryrun my-whatsapp-senderWhat it does
Section titled “What it does”Sends one WhatsApp message (text, reply, attachment, reaction, edit or delete) after applying the response policy: draft stores it, approval waits for a person, auto sends, none skips. Answers sent, failed or uncertain; an uncertain send is never repeated.
What you fill in
Section titled “What you fill in”- the server’s default channel (channels.default / WFX_DEFAULT_CHANNEL) must be the WhatsApp channel — every op goes through it, so its sendGap and echo ledger apply
- an attachment path must be inside this run’s workspace (the send step refuses anything else)
Inputs
Section titled “Inputs”| Input | Type | Default | Required | Meaning |
|---|---|---|---|---|
chat |
string | yes | ||
text |
string | |||
replyTo |
string | |||
replyToSender |
string | |||
mentions |
string | |||
media |
string | |||
mediaKind |
string | "file" |
||
reaction |
string | |||
reactTo |
string | |||
edit |
string | |||
delete |
string | |||
responsePolicy |
string | "auto" |
||
key |
string |
| # | Step | Kind | Skills | Gates |
|---|---|---|---|---|
| 1 | planApply the response policy |
shell (run:) |
exitCode = 2 → fail |
|
| 2 | policyDoes a person approve first? |
shell (run:) |
||
| 3 | approveA person approves this send |
shell (run:) |
human approval first | |
| 4 | sendSend on the channel |
agent | ||
| 5 | deliverReport the result |
shell (run:) |
Human gates
Section titled “Human gates”approvewaits forwfx approve <run-id>(orwfx reject <run-id> -m "why") before it runs.