Send iMessage from n8n. Prove the reply separately.
Install the outbound Claw Messenger node, keep a separate reply consumer connected, and finish with one message out plus the matching reply back into your automation.
The community node handles the controlled outbound message.
A separate WebSocket consumer or webhook stays live.
The inbound reply, not a delivery status, proves the thread.
Start with one controlled thread
Start the 7-day trial, copy your API key, then return here to install the node and prove the reply path.
Start your 7-day trialKnow the two-process boundary
Outbound only
Version 0.1.0 sends one plain-text message and returns the fullsend.result status to the workflow.
Inbound replies
A WebSocket consumer, webhook, or backend receives the reply. The package does not add an inbound trigger.
Keep that separation in production. The n8n node can report accepted, failed, retryable, or not-confirmed outbound states, but none of those replaces an inbound reply event.
1. Install the community node
Install the public package in a self-hosted n8n instance, then restart n8n so the Claw Messenger node appears in the editor.
npm install @emotion-machine/n8n-nodes-claw-messengerCurrent public release: v0.1.0. You can inspect the package and release metadata on npm.
2. Add the Claw Messenger credential
In n8n, create a Claw Messenger API credential with:
- The API key from your Claw Messenger dashboard
wss://claw-messenger.onrender.com/wsas the WebSocket URL
n8n stores the key as a password credential. Keep it out of workflow fields, exports, screenshots, and logs.
3. Build the outbound workflow
- Add a Manual Trigger.
- Add the Claw Messenger node.
- Choose Send Message.
- Enter one registered phone in E.164 format that you control.
- Write a short plain-text message.
- Leave Service on Automatic for this proof.
4. Connect replies, then check readiness
Start the separate WebSocket consumer, webhook, or backend that will observe the reply. If you need a receiver, use the working-thread quickstart and keep that process running through the next step.
Check readiness before you execute the n8n workflow:
curl https://claw-messenger.onrender.com/api/agent/readiness \
-H "Authorization: Bearer ${CLAW_API_KEY}"{"ready":true,"action":"send_controlled_test"}If the action is connect_agent, start or restart the reply consumer and check again. Put the API key in the authorization header, never in this readiness URL.
5. Send once and prove the reply
Run the Manual Trigger. When the controlled phone receives the message, reply in the same thread and keep the separate consumer live until that matching inbound event appears.
One message out and one reply back is the setup finish line.
A node result with ok: true, accepted,delivered, or read is outbound evidence. It is not proof that your automation can receive the next message.
If the proof stops halfway
The node sends, but no reply appears
Recheck readiness and confirm the separate consumer stayed connected. The outbound node closes after it receives its send result; it is not the reply listener.
The credential test fails
Confirm the API key is current and the WebSocket URL begins withwss://. Do not paste the key into the URL field.
The send result is not confirmed
Treat it as not confirmed. Do not label it delivered, and do not rerun blindly. Review the returned status and retryable fields first.
n8n iMessage integration questions
How does n8n receive replies after the node sends?
The Claw Messenger n8n node sends outbound messages. A separate long-running WebSocket consumer or webhook receives replies.
Can I use the package outside a self-hosted n8n instance?
This guide covers the package's documented self-hosted installation path. It does not claim a separate n8n Cloud installation path.
What counts as a working n8n thread?
One controlled message leaves the n8n node, then the matching reply reaches the separate consumer, webhook, or backend. Delivery status alone is not the finish.