Skip to content

n8n Integration

Receive Swft order events in n8n using the Webhook node, then chain any action — Airtable, Notion, Slack, email, or your own API.

Section titled “Option 1 — Webhook trigger node (recommended)”

Use this when you want n8n to receive events in real time as they happen.

  1. Add a Webhook node to your workflow
  2. Set HTTP Method to POST
  3. Copy the webhook URL n8n gives you — it looks like:
    https://your-n8n-instance.com/webhook/abc123
  4. In the Swft dashboard Settings → Integrations, paste this URL into the inbound webhook field and copy it
  5. Register the subscription by calling the Swft API directly (or via an n8n HTTP Request node on workflow activation):
POST https://api.swft.co.uk/merchants/zapier/subscribe
x-swft-api-key: YOUR_API_KEY
Content-Type: application/json
{
"target_url": "https://your-n8n-instance.com/webhook/abc123",
"event": "order.completed",
"provider": "n8n"
}

Available events: order.completed, order.failed, cart.abandoned, refund.issued

  1. Activate your workflow — Swft will now POST to n8n every time the event fires

When you deactivate your workflow, call:

DELETE https://api.swft.co.uk/merchants/zapier/unsubscribe
x-swft-api-key: YOUR_API_KEY
Content-Type: application/json
{ "target_url": "https://your-n8n-instance.com/webhook/abc123" }

Option 2 — HTTP Request node (polling / one-off)

Section titled “Option 2 — HTTP Request node (polling / one-off)”

Use an HTTP Request node to fetch data from Swft on demand (e.g. in a scheduled workflow).

FieldValue
MethodGET / POST
URLhttps://api.swft.co.uk/merchants/analytics
AuthenticationHeader Auth
Header namex-swft-api-key
Header valueYour merchant API key

Sample workflow — Order completed → Airtable row

Section titled “Sample workflow — Order completed → Airtable row”

Import this JSON into n8n via Workflows → Import from clipboard:

{
"name": "Swft — Order to Airtable",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "swft-order",
"responseMode": "onReceived"
},
"name": "Swft Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"operation": "create",
"application": "YOUR_AIRTABLE_BASE_ID",
"table": "Orders",
"additionalFields": {},
"fields": {
"Order ID": "={{ $json.data.order_id }}",
"Customer": "={{ $json.data.customer.first_name }} {{ $json.data.customer.last_name }}",
"Email": "={{ $json.data.customer.email }}",
"Total (£)": "={{ ($json.data.total_pence / 100).toFixed(2) }}",
"Currency": "={{ $json.data.currency }}",
"Event": "={{ $json.event }}",
"Created At": "={{ $json.created_at }}"
}
},
"name": "Create Airtable Row",
"type": "n8n-nodes-base.airtable",
"typeVersion": 1,
"position": [500, 300]
}
],
"connections": {
"Swft Webhook": {
"main": [[{ "node": "Create Airtable Row", "type": "main", "index": 0 }]]
}
}
}

Replace YOUR_AIRTABLE_BASE_ID and configure Airtable credentials in n8n. The expression $json.data.total_pence / 100 converts pence to pounds.


See the Zapier integration page for the full payload field reference — the payload shape is identical across all integrations.