The short answer
There is no native Commune node for n8n yet — one is planned. In the meantime, use n8n’s built-in HTTP Request node to call Commune’s REST API directly. For inbound email, use n8n’s Webhook node as the trigger and register the URL with Commune so your workflow runs on every incoming message.Sending email from n8n
Add an HTTP Request node to your workflow and configure it as follows:- Method: POST
- URL:
https://api.commune.email/v1/messages - Authentication: Generic Credential Type → see Authentication below
- Body Content Type: JSON
"to" to {{ $json.senderEmail }} to reply to whoever triggered the workflow.
Receiving email in n8n
Step 1: Add a Webhook node Add a Webhook node as the workflow trigger. Set the HTTP Method to POST. Copy the webhook URL that n8n generates — it looks likehttps://your-n8n-instance.com/webhook/abc123.
Step 2: Register the webhook with Commune
Register the URL on the inbox you want to listen to. You can do this in the Commune dashboard under inbox settings, or via the API:
Working with extracted data
If you have a structured extraction schema configured on the inbox, the webhook payload includes anextractedData field alongside the message:
- Set
intentto{{ $json.body.extractedData.intent }} - Set
urgencyto{{ $json.body.extractedData.urgency }}
intent to route the workflow:
billing→ HTTP Request to billing systemtechnical→ create a support ticketcancellation→ trigger a retention workflow- default → send a generic acknowledgement email
extractedData as optional. If extraction fails, the field will be null. Use a fallback in your Switch condition or add an IF node to check for null before branching.
Authentication
Store your Commune API key in n8n’s credential manager — never hardcode it in a node.- Go to Credentials → New Credential → Generic Credential Type
- Set the credential name (e.g.,
Commune API) - Add a header parameter: Name
Authorization, ValueBearer comm_YOUR_KEY_HERE - In each HTTP Request node, set Authentication to Generic Credential Type and select the credential you created
Limitations without a native node
Without a dedicated Commune node, there are a few gaps to be aware of:- Error handling is manual. The HTTP Request node does not retry failed requests by default. Add an IF node checking the response status code and wire a retry or alert branch yourself.
- No visual schema builder. Configuring a structured extraction schema requires a raw JSON body in an HTTP Request node. There is no form-based UI like you would get with a native node.
- Manual JSON parsing. Fields from
extractedDatamust be accessed with n8n expressions. There is no auto-mapping or field discovery. - Webhook security is your responsibility. Validate that incoming requests are genuinely from Commune by checking a shared secret header if your n8n instance is publicly accessible.
Related
Webhooks
Full webhook payload reference for building inbound email triggers in n8n.
Structured Extraction
Configure JSON extraction schemas to automatically parse fields from inbound emails.
REST API
Complete API reference for all Commune endpoints used with HTTP Request nodes.

