AutomationFlowsWeb Scraping › Post Approved Trello Bookkeeping Drafts to Xero with Receipt Attachments

Post Approved Trello Bookkeeping Drafts to Xero with Receipt Attachments

ByKristian @kristian on n8n.io

This workflow listens for an “Approved” label on a Trello card, reads the AI draft bookkeeping JSON from card comments, and posts the corresponding transaction to Xero. It then adds a Xero deep link back to Trello, uploads receipt images as Xero attachments, and moves the card…

Event trigger★★★★★ complexity67 nodesTrello TriggerHTTP Request
Web Scraping Trigger: Event Nodes: 67 Complexity: ★★★★★ Added:

This workflow corresponds to n8n.io template #16856 — 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
{
  "id": "4z3SV6MhDwMSTLjn",
  "name": "HITL Bookkeeping - Xero Post",
  "tags": [],
  "nodes": [
    {
      "id": "b3e7910c-4b66-4655-a0ff-a2e2429549ad",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "98afd0b2-4bf8-467e-95ca-e0bffe7f78e3",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        272
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "c7580196-6749-4a2f-a425-65a8ce06d2b4",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1120,
        240
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "462611f8-e1e3-4cea-a14c-88e033cfef80",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1680,
        240
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "ae7f8556-fb96-4bf1-922a-72d946985eba",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2240,
        240
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "84303f3d-9efa-406e-90b5-73ca1713f91f",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2800,
        240
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "caff4aed-14ef-457a-abc7-3990165dddb4",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2800,
        736
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "473de938-7a92-4790-aa03-0f431ce0fe2b",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2800,
        1072
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "0448da4e-42e5-4211-af6f-209946aba39d",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3360,
        0
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "7e517317-9749-45c6-9ba1-a558b6df3269",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3856,
        400
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "b978f99e-5299-4b53-b35e-081f2a84b407",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4192,
        944
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "22a60de7-f1f8-4d63-838a-01235401a813",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4928,
        176
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "76fe0147-9595-449a-812b-02e3c571e02d",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5200,
        240
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "8cb91ed7-25ee-49c8-a37f-6151ffbd8643",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5696,
        272
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "42e4a199-aaa1-4759-9ddf-00699a43c434",
      "name": "Sticky Note14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        6464,
        480
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "53f2bdc4-49ce-4d0c-b1ec-b46e72c096cb",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        7520,
        272
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "9feaf59a-7fc7-4493-bf9c-65bef39e9e5e",
      "name": "Sticky Note16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5312,
        784
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "635f4c00-828b-418b-8f9c-f9cf0f461463",
      "name": "Sticky Note17",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5872,
        784
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "5da9ec18-a774-4868-8ed2-51e42462f7d2",
      "name": "When Trello Card Updated",
      "type": "n8n-nodes-base.trelloTrigger",
      "position": [
        608,
        400
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "44cf084c-7512-4536-b6bb-9eeb2ba38943",
      "name": "Fetch Trello Card Comments",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        1168,
        400
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "alwaysOutputData": true,
      "waitBetweenTries": 3000
    },
    {
      "id": "b15dbff4-ac03-484a-a14b-813ea42da62f",
      "name": "Parse Draft and Verify Uniqueness",
      "type": "n8n-nodes-base.code",
      "onError": "continueErrorOutput",
      "position": [
        1440,
        400
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "62bdb52e-1661-4108-9858-ff2857644242",
      "name": "Check Posting Status to Xero",
      "type": "n8n-nodes-base.if",
      "position": [
        1728,
        400
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "1457ffbc-12b1-4399-901a-2560a0c4134d",
      "name": "Check If Bank Account Needed",
      "type": "n8n-nodes-base.if",
      "position": [
        2000,
        400
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "599b586f-3e3d-46b2-8b3a-a049f33f468e",
      "name": "Send Already Posted Comment",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        1728,
        624
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "6f8c4220-a9ef-4e7f-a917-0cbac5ea2275",
      "name": "Route by Entry Type",
      "type": "n8n-nodes-base.switch",
      "position": [
        3408,
        400
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "e2ca75ed-5019-45c1-95f2-44decd57fa12",
      "name": "Create Spend Money Payload",
      "type": "n8n-nodes-base.code",
      "position": [
        3680,
        160
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "8f7f2d58-2378-4d2e-b566-f34a3dcdad1d",
      "name": "Create Bill Payload",
      "type": "n8n-nodes-base.code",
      "position": [
        3680,
        320
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "8f940f26-9461-49ce-a36f-73b06e281e56",
      "name": "Create Manual Journal Payload",
      "type": "n8n-nodes-base.code",
      "position": [
        3680,
        480
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "bccea91d-4232-471b-9a7e-c7cd05aae024",
      "name": "Transmit To Xero API",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "position": [
        4976,
        400
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "a6d6ef2c-8d7e-4b7b-a75f-763e2e08fcf3",
      "name": "Generate Xero Deep Link",
      "type": "n8n-nodes-base.code",
      "onError": "continueErrorOutput",
      "position": [
        5248,
        400
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "12485356-81ab-40d8-9cd5-03d733396fa6",
      "name": "Send Xero URL Comment",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        5520,
        400
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "80ffaf3a-daa8-483f-8b98-b4460d073593",
      "name": "Send Posted Confirmation Comment",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        7568,
        400
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "8b50ab93-e63e-42d1-9445-7c5107d16085",
      "name": "Delete Review Label from Card",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        7840,
        400
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "c22f32bf-903b-4553-a27a-3c664866e74e",
      "name": "Shift Card to Done List",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        8112,
        400
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "86ad86c3-3b20-4e99-aec7-ea3921abf748",
      "name": "Create Error Comment",
      "type": "n8n-nodes-base.code",
      "position": [
        5360,
        944
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "82ba0e53-5a9a-4ce3-8eef-82d603a57ad8",
      "name": "Send Merge Failure Comment",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        5648,
        944
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "80f5e1fa-b311-43b2-bb1c-d80fabefe8de",
      "name": "Label Card as Xero Failure",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        6208,
        944
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "910f14ab-6794-4592-bf2f-f5fd1d44962c",
      "name": "Delete Approved Label from Card",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        5920,
        944
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "72b25228-70fa-4a40-b65f-907a3a49574d",
      "name": "Retrieve Xero Accounts",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "maxTries": 3,
      "position": [
        2288,
        400
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "d5eb9405-16a3-4bbf-b458-55ce95815a69",
      "name": "Configure Xero Posting Setup",
      "type": "n8n-nodes-base.code",
      "onError": "continueErrorOutput",
      "position": [
        2560,
        400
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "af5d7850-fb75-4ff8-a5a8-4ed601ac2f36",
      "name": "Verify Bank Account Prepared",
      "type": "n8n-nodes-base.if",
      "position": [
        3120,
        400
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "2d28a8b5-0d93-4534-b30d-8b0d84d4d1cc",
      "name": "Prepare Bank Confirmation Message",
      "type": "n8n-nodes-base.code",
      "position": [
        2848,
        1200
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "09b8fab7-3edd-448d-beeb-1341885e0d90",
      "name": "Send Bank Account Required Msg",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        3408,
        1200
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "584cf07d-0b81-49c8-8548-f40a042ed163",
      "name": "Delete Approved Label (Bank Pending)",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        3680,
        1200
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "e9438c22-e250-4eba-a78c-e59a7d406c98",
      "name": "Retrieve Open Bills",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "maxTries": 3,
      "position": [
        3904,
        528
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "bbaa0cd7-1999-4447-bf88-2c8628392257",
      "name": "Associate Bill with Payment",
      "type": "n8n-nodes-base.code",
      "onError": "continueErrorOutput",
      "position": [
        4192,
        528
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "c1893e88-446b-443f-b74f-07e7ffe32864",
      "name": "Validate Bill Readiness",
      "type": "n8n-nodes-base.if",
      "position": [
        4464,
        528
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "afb5929f-94a9-48a3-a399-a701573b94e7",
      "name": "Compose Bill Confirmation Message",
      "type": "n8n-nodes-base.code",
      "position": [
        4240,
        1072
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "9d98cad3-95b3-4b8a-a306-f4e26c8246cf",
      "name": "Send Bill Required Notification",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        4800,
        1072
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "6b80bd2a-124c-4d4c-b584-7c79c031aa36",
      "name": "Delete Approved Label (Bill Pending)",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        5088,
        1072
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "de7c94ef-07df-4953-91a2-9184675e7c5d",
      "name": "Construct PAY_BILL Payload",
      "type": "n8n-nodes-base.code",
      "position": [
        4752,
        528
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "4ebbe441-442f-42eb-bc97-b9e499c7cb62",
      "name": "Check Reference Confirmation",
      "type": "n8n-nodes-base.if",
      "position": [
        2848,
        400
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "19b97bf4-0bf6-4913-89e7-36dc44339c2f",
      "name": "Draft Reference Confirmation Msg",
      "type": "n8n-nodes-base.code",
      "position": [
        2848,
        864
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "8487c723-9e91-4b01-806f-c4276d0f0b3f",
      "name": "Send Reference Required Alert",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        3408,
        864
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "5e5d5dee-c225-4522-8694-dfc6519643a4",
      "name": "Delete Approved Label (Ref. Pending)",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 3,
      "position": [
        3680,
        864
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "b47f49fd-e2b4-459e-8a93-26c249fc0201",
      "name": "Check for Trello Images",
      "type": "n8n-nodes-base.if",
      "position": [
        6288,
        400
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "8ab64ee9-f2fa-4af9-b6ff-565ff333929d",
      "name": "Unpack Trello Images for Xero",
      "type": "n8n-nodes-base.code",
      "position": [
        6512,
        608
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "bdbe4279-50f4-4e78-883b-263f083d2ce3",
      "name": "Add Xero Attachment",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "position": [
        7056,
        608
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "fc4b99d8-1a93-43a5-9f56-2376b17d539a",
      "name": "Compile Attachment Results",
      "type": "n8n-nodes-base.code",
      "position": [
        7328,
        608
      ],
      "parameters": {},
      "typeVersion": 2,
      "alwaysOutputData": true
    },
    {
      "id": "0b0fdc8d-a6c5-46c2-b876-be019c5243ac",
      "name": "Refresh Card Attachments",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "maxTries": 3,
      "position": [
        5744,
        400
      ],
      "parameters": {},
      "retryOnFail": false,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "6f0d9bdd-2fe7-4735-8c6a-d422cef8b026",
      "name": "Setup Attachments for Xero",
      "type": "n8n-nodes-base.code",
      "onError": "continueErrorOutput",
      "position": [
        6016,
        400
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "c7508017-ef19-4806-b897-a9e2264c38b7",
      "name": "Determine Reference Comment Post",
      "type": "n8n-nodes-base.if",
      "position": [
        3120,
        864
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "f5ceaf49-4eab-4e65-a4c7-5a7ef6e692d8",
      "name": "Decide Bank Comment Posting",
      "type": "n8n-nodes-base.if",
      "position": [
        3120,
        1200
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "9769b8b3-5c2f-4861-b6e9-872379120928",
      "name": "Choose Bill Comment Posting",
      "type": "n8n-nodes-base.if",
      "position": [
        4528,
        1072
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "49fc359c-6ce7-433b-86a6-8d90d348a8f5",
      "name": "Retrieve Trello Image",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "maxTries": 3,
      "position": [
        6784,
        608
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 4.2,
      "waitBetweenTries": 3000
    },
    {
      "id": "935b6e90-6b7d-43c3-b410-b46754f047d1",
      "name": "Human Initiated Approval",
      "type": "n8n-nodes-base.code",
      "position": [
        864,
        400
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "89a21dcd-e47d-4cea-b732-b479a6c03910",
      "name": "Check Trello Download Validity",
      "type": "n8n-nodes-base.code",
      "onError": "continueErrorOutput",
      "position": [
        6912,
        608
      ],
      "parameters": {},
      "typeVersion": 2
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "e0a89572-d9c9-4f64-98e0-bdb55627a5dc",
  "nodeGroups": [],
  "connections": {
    "Add Xero Attachment": {
      "main": [
        [
          {
            "node": "Compile Attachment Results",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Compile Attachment Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Bill Payload": {
      "main": [
        [
          {
            "node": "Transmit To Xero API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Open Bills": {
      "main": [
        [
          {
            "node": "Associate Bill with Payment",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Error Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Entry Type": {
      "main": [
        [
          {
            "node": "Create Spend Money Payload",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Bill Payload",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Retrieve Open Bills",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Manual Journal Payload",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Error Comment": {
      "main": [
        [
          {
            "node": "Send Merge Failure Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transmit To Xero API": {
      "main": [
        [
          {
            "node": "Generate Xero Deep Link",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Error Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Trello Image": {
      "main": [
        [
          {
            "node": "Check Trello Download Validity",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Compile Attachment Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Xero URL Comment": {
      "main": [
        [
          {
            "node": "Refresh Card Attachments",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Xero Accounts": {
      "main": [
        [
          {
            "node": "Configure Xero Posting Setup",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Error Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check for Trello Images": {
      "main": [
        [
          {
            "node": "Unpack Trello Images for Xero",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send Posted Confirmation Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Xero Deep Link": {
      "main": [
        [
          {
            "node": "Send Xero URL Comment",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Error Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate Bill Readiness": {
      "main": [
        [
          {
            "node": "Construct PAY_BILL Payload",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Compose Bill Confirmation Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Human Initiated Approval": {
      "main": [
        [
          {
            "node": "Fetch Trello Card Comments",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Refresh Card Attachments": {
      "main": [
        [
          {
            "node": "Setup Attachments for Xero",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send Posted Confirmation Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Trello Card Updated": {
      "main": [
        [
          {
            "node": "Human Initiated Approval",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Compile Attachment Results": {
      "main": [
        [
          {
            "node": "Send Posted Confirmation Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Construct PAY_BILL Payload": {
      "main": [
        [
          {
            "node": "Transmit To Xero API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Spend Money Payload": {
      "main": [
        [
          {
            "node": "Transmit To Xero API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Trello Card Comments": {
      "main": [
        [
          {
            "node": "Parse Draft and Verify Uniqueness",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Label Card as Xero Failure": {
      "main": [
        [
          {
            "node": "Delete Approved Label from Card",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Merge Failure Comment": {
      "main": [
        [
          {
            "node": "Label Card as Xero Failure",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Setup Attachments for Xero": {
      "main": [
        [
          {
            "node": "Check for Trello Images",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send Posted Confirmation Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Associate Bill with Payment": {
      "main": [
        [
          {
            "node": "Validate Bill Readiness",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Error Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Choose Bill Comment Posting": {
      "main": [
        [
          {
            "node": "Send Bill Required Notification",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Delete Approved Label (Bill Pending)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Decide Bank Comment Posting": {
      "main": [
        [
          {
            "node": "Send Bank Account Required Msg",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Delete Approved Label (Bank Pending)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check If Bank Account Needed": {
      "main": [
        [
          {
            "node": "Retrieve Xero Accounts",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Configure Xero Posting Setup",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Posting Status to Xero": {
      "main": [
        [
          {
            "node": "Check If Bank Account Needed",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Send Already Posted Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Reference Confirmation": {
      "main": [
        [
          {
            "node": "Verify Bank Account Prepared",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Draft Reference Confirmation Msg",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Configure Xero Posting Setup": {
      "main": [
        [
          {
            "node": "Check Reference Confirmation",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Error Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Verify Bank Account Prepared": {
      "main": [
        [
          {
            "node": "Route by Entry Type",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Prepare Bank Confirmation Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Manual Journal Payload": {
      "main": [
        [
          {
            "node": "Transmit To Xero API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delete Review Label from Card": {
      "main": [
        [
          {
            "node": "Shift Card to Done List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Reference Required Alert": {
      "main": [
        [
          {
            "node": "Delete Approved Label (Ref. Pending)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Unpack Trello Images for Xero": {
      "main": [
        [
          {
            "node": "Retrieve Trello Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Trello Download Validity": {
      "main": [
        [
          {
            "node": "Add Xero Attachment",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Compile Attachment Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Bank Account Required Msg": {
      "main": [
        [
          {
            "node": "Delete Approved Label (Bank Pending)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Bill Required Notification": {
      "main": [
        [
          {
            "node": "Delete Approved Label (Bill Pending)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Determine Reference Comment Post": {
      "main": [
        [
          {
            "node": "Send Reference Required Alert",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Delete Approved Label (Ref. Pending)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Draft Reference Confirmation Msg": {
      "main": [
        [
          {
            "node": "Determine Reference Comment Post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Posted Confirmation Comment": {
      "main": [
        [
          {
            "node": "Delete Review Label from Card",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Compose Bill Confirmation Message": {
      "main": [
        [
          {
            "node": "Choose Bill Comment Posting",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Draft and Verify Uniqueness": {
      "main": [
        [
          {
            "node": "Check Posting Status to Xero",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Error Comment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Bank Confirmation Message": {
      "main": [
        [
          {
            "node": "Decide Bank Comment Posting",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

This workflow listens for an “Approved” label on a Trello card, reads the AI draft bookkeeping JSON from card comments, and posts the corresponding transaction to Xero. It then adds a Xero deep link back to Trello, uploads receipt images as Xero attachments, and moves the card…

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

More Web Scraping workflows → · Browse all categories →

Related workflows

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

Web Scraping

02_LLM_Pipeline v1.0. Uses executeWorkflowTrigger, httpRequest, seaTable. Event-driven trigger; 65 nodes.

Execute Workflow Trigger, HTTP Request, Sea Table
Web Scraping

This workflow allows you to import any workflow from a file or another n8n instance and map the credentials easily. A multi-form setup guides you through the entire process At the beginning you have t

Execute Command, Read Write File, HTTP Request +3
Web Scraping

[n8n] Advanced URL Parsing and Shortening Workflow - Switchy.io Integration. Uses splitInBatches, stickyNote, httpRequest, html. Event-driven trigger; 56 nodes.

HTTP Request, GitHub, Stop And Error +1
Web Scraping

[](https://youtu.be/c7yCZhmMjtI)

HTTP Request, GitHub, Stop And Error +1
Web Scraping

This automation organizes your n8n workflows files into categorizes (Active, Template, Done, Archived) and uploads them directly to a categorized Google Drive folders. It is designed to help users man

Google Drive, HTTP Request, Time Saved