AutomationFlowsFinance › Integrate Xero with Filemaker Using Webhooks

Integrate Xero with Filemaker Using Webhooks

ByStathis Askaridis @stathisaska on n8n.io

This n8n workflow automates the integration between Xero and FileMaker, allowing for seamless data transfer between the two platforms. By listening for webhooks from Xero (e.g., new invoices, payments, or contacts), this workflow ensures that data is automatically sent and…

Webhook trigger★★★★☆ complexity11 nodesCryptoMove Binary DataFilemaker
Finance Trigger: Webhook Nodes: 11 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #2499 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "nodes": [
    {
      "id": "9bd2c2f7-d837-451e-8a25-a185713edefb",
      "name": "Crypto",
      "type": "n8n-nodes-base.crypto",
      "position": [
        1640,
        660
      ],
      "parameters": {
        "type": "SHA256",
        "value": "={{$json[\"source_data\"]}}",
        "action": "hmac",
        "secret": "YOUR_CREDENTIAL_HERE",
        "encoding": "base64",
        "dataPropertyName": "target_data"
      },
      "typeVersion": 1
    },
    {
      "id": "75aca737-5e31-4022-8827-375cf8717a06",
      "name": "Move Binary Data",
      "type": "n8n-nodes-base.moveBinaryData",
      "position": [
        1240,
        660
      ],
      "parameters": {
        "options": {},
        "setAllData": false,
        "destinationKey": "raw_data"
      },
      "typeVersion": 1
    },
    {
      "id": "f1ece5d1-a38f-4548-80b4-a77f07c0cc95",
      "name": "Set",
      "type": "n8n-nodes-base.set",
      "position": [
        1440,
        660
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "source_data",
              "value": "={{$json[\"raw_data\"]}}"
            }
          ]
        },
        "options": {},
        "keepOnlySet": true
      },
      "typeVersion": 1
    },
    {
      "id": "251bd7d1-e955-4b2c-a020-e0b2e3ebb5cc",
      "name": "IF",
      "type": "n8n-nodes-base.if",
      "position": [
        1860,
        660
      ],
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{$node[\"Crypto\"].json[\"target_data\"]}}",
              "value2": "={{$node[\"Xero Webhook\"].json[\"headers\"][\"x-xero-signature\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3a7041d6-e86b-414f-9d26-94c1ffe893cc",
      "name": "Success",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2080,
        540
      ],
      "parameters": {
        "options": {
          "responseCode": 200
        },
        "respondWith": "noData"
      },
      "typeVersion": 1
    },
    {
      "id": "8dfe4916-2fce-4d51-8a41-66cb4e31bdf5",
      "name": "Unauthorised",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2080,
        740
      ],
      "parameters": {
        "options": {
          "responseCode": 401
        },
        "respondWith": "noData"
      },
      "typeVersion": 1
    },
    {
      "id": "81b08d6b-065c-4e61-87b7-6428963339e2",
      "name": "Create webhook record",
      "type": "n8n-nodes-base.filemaker",
      "position": [
        2320,
        540
      ],
      "parameters": {
        "action": "create",
        "layout": "Webhooks",
        "fieldsParametersUi": {
          "fields": [
            {
              "name": "json",
              "value": "={{$node[\"Set\"].json[\"source_data\"]}}"
            }
          ]
        }
      },
      "credentials": {
        "fileMaker": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "48d977ee-64df-4788-8808-70cd6c7bf5f7",
      "name": "Perform processWebhook script",
      "type": "n8n-nodes-base.filemaker",
      "position": [
        2540,
        540
      ],
      "parameters": {
        "action": "performscript",
        "layout": "Webhooks",
        "script": "processWebhook",
        "scriptParam": "={{ $json.response.recordId }}"
      },
      "credentials": {
        "fileMaker": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d6f4d1d4-4e69-4279-88e2-ea27036cea20",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2600,
        420
      ],
      "parameters": {
        "content": "## Script Parameter\nPasses the record id as script parameter to be used in your processWebhook script"
      },
      "typeVersion": 1
    },
    {
      "id": "72b3f208-803b-45c5-b38d-eeef4425a2ba",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1620,
        540
      ],
      "parameters": {
        "width": 158.74371859296477,
        "height": 121.3065326633166,
        "content": "## Input\nAdd your Xero webhook secret here"
      },
      "typeVersion": 1
    },
    {
      "id": "54f36def-0ac9-4769-818f-2e8991f196a5",
      "name": "Xero Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        1040,
        660
      ],
      "parameters": {
        "path": "4cf50a61-b550-4ee6-984d-ad8c94e2b5c2",
        "options": {
          "rawBody": true
        },
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "IF": {
      "main": [
        [
          {
            "node": "Success",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Unauthorised",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set": {
      "main": [
        [
          {
            "node": "Crypto",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Crypto": {
      "main": [
        [
          {
            "node": "IF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Success": {
      "main": [
        [
          {
            "node": "Create webhook record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Xero Webhook": {
      "main": [
        [
          {
            "node": "Move Binary Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Move Binary Data": {
      "main": [
        [
          {
            "node": "Set",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create webhook record": {
      "main": [
        [
          {
            "node": "Perform processWebhook script",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This n8n workflow automates the integration between Xero and FileMaker, allowing for seamless data transfer between the two platforms. By listening for webhooks from Xero (e.g., new invoices, payments, or contacts), this workflow ensures that data is automatically sent and…

Source: https://n8n.io/workflows/2499/ — original creator credit. Request a take-down →

More Finance workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Finance

This workflow automates the process of recording successful payments from Stripe into QuickBooks by creating corresponding Sales Receipts. It ensures payment data is captured accurately, checks whethe

QuickBooks, Stripe
Finance

Template & Design Service. Webhook trigger; 4 nodes.

Finance

Mindwave — 02 Discovery Brief. Uses emailSend. Webhook trigger; 3 nodes.

Email Send
Finance

This automation manages Stripe disputes by fetching dispute data, formatting it, logging it into Google Sheets, updating related payment records, and notifying the customer via email. It ensures finan

HTTP Request, Google Sheets, Gmail
Finance

EVEZ Groq Engine — llama-3.3-70b — FREE 24/7. Uses errorTrigger. Scheduled trigger; 9 nodes.

Error Trigger