AutomationFlowsData & Sheets › Amazon Affiliate Links to Mastodon with AI Descriptions & Shlink Tracking

Amazon Affiliate Links to Mastodon with AI Descriptions & Shlink Tracking

ByJoachim Hummel @jhummel on n8n.io

This n8n workflow automates posting Amazon affiliate products to Mastodon — complete with image upload, description, and a shortened tracking URL using Shlink.

Event trigger★★★★☆ complexityAI-powered11 nodesN8N Nodes The MastodonGoogle SheetsChain LlmOpenRouter ChatHTTP Request
Data & Sheets Trigger: Event Nodes: 11 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Chainllm → Google Sheets recipe pattern — see all workflows that pair these two integrations.

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": "aqVSJsVRHr4lAZVM",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Mastodon Posting - Amazon und SHLink English",
  "tags": [],
  "nodes": [
    {
      "id": "9f4f98cc-df3d-49e5-a371-818bd2c2ef94",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -740,
        160
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "6cecfaee-3882-488e-9e9c-28fec3a59b6b",
      "name": "Mastodon",
      "type": "n8n-nodes-the-mastodon.mastodon",
      "position": [
        440,
        140
      ],
      "parameters": {
        "status": "={{ $json.text }}\n{{ $('Get Picture').item.json.SHLink }}",
        "additionalFields": {
          "mediaIds": "={{ $('Picture to Mastodon').item.json.id }}",
          "sensitive": false,
          "visibility": "public"
        }
      },
      "credentials": {
        "mastodonOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "91304e37-f846-45ef-8e77-d3606572c8ba",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -780,
        -40
      ],
      "parameters": {
        "color": 5,
        "width": 1640,
        "height": 420,
        "content": "## Send Amazon Affiliate to Mastodon\n### Monitor the Links with https://shlink.io/\n"
      },
      "typeVersion": 1
    },
    {
      "id": "5d58cd9a-be4b-4116-be1a-915c22f37018",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -380,
        160
      ],
      "parameters": {
        "options": {
          "returnFirstMatch": true
        },
        "filtersUI": {
          "values": [
            {
              "lookupValue": "NO",
              "lookupColumn": "Send"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1y2Gt9VyMOt_Pf8DOz1IqQ5x9cDHFTToJvr6qijT1V4g/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1y2Gt9VyMOt_Pf8DOz1IqQ5x9cDHFTToJvr6qijT1V4g",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1y2Gt9VyMOt_Pf8DOz1IqQ5x9cDHFTToJvr6qijT1V4g/edit?usp=drivesdk",
          "cachedResultName": "Amazon Affiliate"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "a87e93ae-aed5-4f95-957e-4640721c29be",
      "name": "Set Parameter",
      "type": "n8n-nodes-base.set",
      "notes": "Mastodon Parameters",
      "position": [
        -560,
        160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "918a80b9-90fc-4f80-a4f5-1c97409e5014",
              "name": "mostodon_instance",
              "type": "string",
              "value": "https://mastodon.social/api/v2/media"
            },
            {
              "id": "5a587f92-815c-4726-81bc-2eaba1f08e0e",
              "name": "mastodon_token",
              "type": "string",
              "value": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 3.4
    },
    {
      "id": "30120e03-e058-4e91-b8a5-c073cb60dbcd",
      "name": "Basic LLM Chain",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -60,
        20
      ],
      "parameters": {
        "text": "=Create a two-line technical ad copy based on this product page: {{ $json[\"Amazon Link\"] }} suppress \"Here is an ad copy\" in the output!",
        "batching": {},
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "9323a3cb-7668-448d-8292-652ead0deb8a",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        -80,
        240
      ],
      "parameters": {
        "model": "perplexity/sonar",
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1c2c5f36-c4df-4c1d-937b-b03839406173",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        260,
        140
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.2,
      "alwaysOutputData": true
    },
    {
      "id": "aaf70202-fdf6-4aee-8956-603b24c25faa",
      "name": "Get Picture",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -220,
        160
      ],
      "parameters": {
        "url": "={{ $json.PicURL }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "736afabe-8479-46d9-8092-7e3db488b4a7",
      "name": "Picture to Mastodon",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        40,
        160
      ],
      "parameters": {
        "url": "={{ $('Set Parameter').item.json.mostodon_instance }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "=Bearer {{ $('Set Parameter').item.json.mastodon_token }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "faa25555-7a35-45dc-98f2-7c7743bdee7d",
      "name": "Google Update",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        620,
        140
      ],
      "parameters": {
        "columns": {
          "value": {
            "Send": "YES",
            "SHLink": "={{ $('Google Sheets').item.json.SHLink }}"
          },
          "schema": [
            {
              "id": "SHLink",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "SHLink",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Amazon Link",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Amazon Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Description",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "PicURL",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "PicURL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Send",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Send",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "SHLink"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1y2Gt9VyMOt_Pf8DOz1IqQ5x9cDHFTToJvr6qijT1V4g/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1y2Gt9VyMOt_Pf8DOz1IqQ5x9cDHFTToJvr6qijT1V4g",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1y2Gt9VyMOt_Pf8DOz1IqQ5x9cDHFTToJvr6qijT1V4g/edit?usp=drivesdk",
          "cachedResultName": "Amazon Affiliate"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6,
      "alwaysOutputData": true
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "1862c012-395a-4de2-ab61-6b7ee18154d0",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Mastodon",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mastodon": {
      "main": [
        [
          {
            "node": "Google Update",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Picture": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          },
          {
            "node": "Picture to Mastodon",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets": {
      "main": [
        [
          {
            "node": "Get Picture",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Parameter": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Picture to Mastodon": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Set Parameter",
            "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 posting Amazon affiliate products to Mastodon — complete with image upload, description, and a shortened tracking URL using Shlink.

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

More Data & Sheets workflows → · Browse all categories →

Related workflows

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

Data & Sheets

This workflow demonstrates a simple way to run evals on a set of test cases stored in a Google Sheet.

Google Sheets, Output Parser Structured, Chain Llm +3
Data & Sheets

Splitout Code. Uses lmChatOpenRouter, outputParserStructured, httpRequest, stickyNote. Event-driven trigger; 11 nodes.

OpenRouter Chat, Output Parser Structured, HTTP Request +2
Data & Sheets

This workflow automates web scraping of Amazon search result pages by retrieving raw HTML, cleaning it to retain only the relevant product elements, and then using an LLM to extract structured product

OpenRouter Chat, Output Parser Structured, HTTP Request +2
Data & Sheets

This template is ideal for B2B founders, solopreneurs, growth marketers, SDRs, or anyone looking to scale their lead generation and enrichment with no-code tools to low-code tools.

Google Sheets, OpenRouter Chat, Chain Llm +4
Data & Sheets

Lead Generating Web Scraper & CRM Automation. Uses httpRequest, airtable, googleSheets, gmail. Scheduled trigger; 38 nodes.

HTTP Request, Airtable, Google Sheets +4