n8n Workflow
Advanced

Amazon Keyword Suggestion Tool with Airtable Integration

Automate Amazon keyword research. This workflow fetches a seed keyword from Airtable, gets suggestions from Amazon's API, and saves them back to Airtable.

Overview

Automates the process of finding Amazon keyword suggestions for a given seed keyword and populating an Airtable base with the results, streamlining product listing optimization.

💡 Description & Use Case

This workflow transforms n8n into a powerful Amazon keyword research tool. It automates the process of finding valuable, long-tail keywords directly from Amazon's suggestion API and organizes them neatly in an Airtable base. It's perfect for Amazon FBA sellers, marketers, and SEO specialists looking to optimize product listings and ad campaigns.

🔄 How It Works:

  1. Triggered by a Webhook

    • The workflow starts when the Receive Keyword webhook node receives a request. This is typically triggered from an Airtable automation when a new record is created or a specific field is updated.
  2. Fetch Seed Keyword from Airtable

    • The Get airtable data node retrieves the specific Airtable record that triggered the webhook, grabbing the initial seed keyword.
  3. Query Amazon's Suggestion API

    • The Get Amazon keywords (HTTP Request) node sends the seed keyword to Amazon's completion API.
    • Amazon responds with a list of popular search queries that start with that keyword.
  4. Process and Format Keywords

    • Format output (SplitOut): Splits the list of suggestion objects into individual items for processing.
    • Clean Keywords (Set): Extracts just the keyword text from each suggestion.
    • Aggregate keywords: Gathers all the cleaned keywords back into a single array.
    • Combine into string (Code): Joins the array of keywords into one comma-separated string.
  5. Save Results to Airtable

    • The Save keywords (Airtable) node updates the original Airtable record, populating a designated field with the newly generated comma-separated list of keywords.

✅ Real-World Use Cases:

  • Product Listing Optimization: Automatically generate a list of relevant long-tail keywords to use in your product titles, bullet points, and backend search terms.
  • PPC Campaign Expansion: Discover new, relevant keywords to target in your Amazon PPC campaigns, improving ad reach and performance.
  • Market Research: Quickly understand customer search behavior by seeing what they are searching for related to your products.
  • Content Creation: Get ideas for blog posts, articles, or FAQs by analyzing the keywords customers use to find products like yours.

This workflow creates a seamless, automated loop between your data in Airtable and live Amazon search data, saving you hours of manual research. 🚀

Instructions

Basic steps

  1. Download workflow JSON
  2. Import into n8n
  3. Configure node parameters as needed
  4. Test and enable the workflow

💡 Tips

After importing, verify all connectors and credentials match your environment.

Preview

Workflow Visualization

12 nodes
100%
Clean KeywordssetGet airtable dataairtableGet Amazon keywordshttpRequestFormat outputsplitOutAggregate keywordsaggregateCombine into stringcodeSave keywordsairtableReceive KeywordwebhookSticky NotestickyNoteSticky Note1stickyNoteSticky Note2stickyNoteSticky Note3stickyNote

Nodes

1

Clean Keywords

set

v3.3
2

Get airtable data

airtable

v2.1
3

Get Amazon keywords

httpRequest

v4.1
4

Format output

splitOut

v1
5

Aggregate keywords

aggregate

v1
6

Combine into string

code

v2
7

Save keywords

airtable

v2.1
8

Receive Keyword

webhook

v1.1
9

Sticky Note

stickyNote

v1
10

Sticky Note1

stickyNote

v1
11

Sticky Note2

stickyNote

v1
12

Sticky Note3

stickyNote

v1

Statistics

Total nodes:12
Disabled nodes:0
Node types:8
Connections:7
View full JSON structure
{
  "nodes": [
    {
      "id": "ac4b8cad-b8a3-4cc0-a848-1b6976c1d78a",
      "name": "Clean Keywords",
      "type": "n8n-nodes-base.set",
      "position": [
        380,
        620
      ],
      "parameters": {
        "options": {
          "ignoreConversionErrors": true
        },
        "assignments": {
          "assignments": [
            {
              "id": "fb95058f-0c20-4249-8a45-7b935fde1874",
              "name": "Keywords",
              "type": "array",
              "value": "={{ $json.value }}"
            }
          ]
        }
      },
      "typeVersion": 3.3
    },
    {
      "id": "62575572-e4d2-43e8-9339-d4737961883e",
      "name": "Get airtable data",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -220,
        620
      ],
      "parameters": {
        "id": "={{ $json.query.q }}",
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appGZ14ny5J2PYbq8",
          "cachedResultUrl": "https://airtable.com/appGZ14ny5J2PYbq8",
          "cachedResultName": "Amazon keyword"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblvK8Nq4Jqb2Ubun",
          "cachedResultUrl": "https://airtable.com/appGZ14ny5J2PYbq8/tblvK8Nq4Jqb2Ubun",
          "cachedResultName": "Table 1"
        },
        "options": {}
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "FV1F34pRcGoKZ8GY",
          "name": "Airtable Personal Access Token account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "e165df91-c212-4c47-8b79-2e637d0fcb7b",
      "name": "Get Amazon keywords",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        0,
        620
      ],
      "parameters": {
        "url": "=https://completion.amazon.com/api/2017/suggestions?mid=ATVPDKIKX0DER&alias=aps&prefix={{ $json.Keyword }}",
        "options": {}
      },
      "typeVersion": 4.1
    },
    {
      "id": "49fca0c4-7d1b-4369-9274-2c0b2bb81c8b",
      "name": "Format output",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        200,
        620
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "suggestions"
      },
      "typeVersion": 1
    },
    {
      "id": "cb00c467-49dd-4504-b5bb-d512baf55bfd",
      "name": "Aggregate keywords",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        600,
        620
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "Keywords"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0b04d232-488d-4420-b991-d12b511d5fde",
      "name": "Combine into string",
      "type": "n8n-nodes-base.code",
      "position": [
        800,
        620
      ],
      "parameters": {
        "jsCode": "return [{\n  json: {\n    keywords: items[0].json.Keywords.join(\", \")\n  }\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "dae32617-6d15-4f30-a27f-894787c137e2",
      "name": "Save keywords",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1000,
        620
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appGZ14ny5J2PYbq8",
          "cachedResultUrl": "https://airtable.com/appGZ14ny5J2PYbq8",
          "cachedResultName": "Amazon keyword"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblvK8Nq4Jqb2Ubun",
          "cachedResultUrl": "https://airtable.com/appGZ14ny5J2PYbq8/tblvK8Nq4Jqb2Ubun",
          "cachedResultName": "Table 1"
        },
        "columns": {
          "value": {
            "id": "={{ $('Get airtable data').item.json.id }}",
            "Keyword output": "={{ $json.keywords }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Keyword",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Keyword",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Trigger",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Trigger",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Keyword output",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Keyword output",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ]
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "FV1F34pRcGoKZ8GY",
          "name": "Airtable Personal Access Token account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "aa451c9b-cfc7-4a9a-9ab5-1e6690039eb6",
      "name": "Receive Keyword",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -460,
        620
      ],
      "webhookId": "e1df17af-e8b8-4261-ba45-aba7106c65bd",
      "parameters": {
        "path": "e1df17af-e8b8-4261-ba45-aba7106c65bd",
        "options": {},
        "responseMode": "lastNode"
      },
      "typeVersion": 1.1
    },
    {
      "id": "8dc19b86-ac56-487d-9678-04c9f8306786",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -560,
        140
      ],
      "parameters": {
        "width": 589.0376569037658,
        "height": 163.2468619246862,
        "content": "## How to build your own Amazon keywords tool with n8n (For free and no coding)\n\nThis workflow gives you Amazon keywords for your Amazon FBA business.\n\n[💡 You can read more about this workflow here](https://rumjahn.com/how-to-build-your-own-amazon-keywords-tool-with-n8n-for-free-and-no-coding/)"
      },
      "typeVersion": 1
    },
    {
      "id": "c1341984-f1a7-4c7e-8a23-46adea6d2afe",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -520,
        420
      ],
      "parameters": {
        "color": 4,
        "width": 239.9999999999998,
        "height": 389.0807354116707,
        "content": "## Send keywords \nYou need to send the workflow a keyword through webhook. You can get my airtable example to see how to send keyword.\n[Download airtable here.](https://airtable.com/invite/l?inviteId=invgv9FzNB258bm5Z&inviteToken=6f820e142d3324318254c1768fa57809b3ef0bcb7212ea27730fd2d140c69ad5&utm_medium=email&utm_source=product_team&utm_content=transactional-alerts)"
      },
      "typeVersion": 1
    },
    {
      "id": "17c13b36-a350-4031-bb9b-a6f8dabd1b90",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        418.4172661870504
      ],
      "parameters": {
        "color": 6,
        "width": 218.6570743405277,
        "height": 386.2350119904079,
        "content": "## Send to Amazon\nAmazon has a completion API that gives you keyword data."
      },
      "typeVersion": 1
    },
    {
      "id": "3deef28b-90b9-4357-a46d-78d750126b65",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        400
      ],
      "parameters": {
        "color": 4,
        "width": 181.6626698641084,
        "height": 389.0807354116707,
        "content": "## Save keywords \nDownload my airtable example to save the keywords.\n[Download airtable here.](https://airtable.com/invite/l?inviteId=invgv9FzNB258bm5Z&inviteToken=6f820e142d3324318254c1768fa57809b3ef0bcb7212ea27730fd2d140c69ad5&utm_medium=email&utm_source=product_team&utm_content=transactional-alerts)"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Format output": {
      "main": [
        [
          {
            "node": "Clean Keywords",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean Keywords": {
      "main": [
        [
          {
            "node": "Aggregate keywords",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Receive Keyword": {
      "main": [
        [
          {
            "node": "Get airtable data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get airtable data": {
      "main": [
        [
          {
            "node": "Get Amazon keywords",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate keywords": {
      "main": [
        [
          {
            "node": "Combine into string",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine into string": {
      "main": [
        [
          {
            "node": "Save keywords",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Amazon keywords": {
      "main": [
        [
          {
            "node": "Format output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Actions

Share
Categories:
Tags:
setairtablehttprequestwebhookstickynotecodesplitoutaggregate

Technical Specs

Complexity:
Advanced
Node Count:
12 nodes
Published:11 months ago
Updated:10 days ago

Compatibility

Platform:
N8N Cloud & Self-hosted
Min Version:
N8N v1.0.0+
Supports cloud and self-hosted deployment

License

This workflow template follows MIT license, you can freely use, modify and distribute.

Please comply with relevant third-party service terms when using.

Related Workflows