
Each local area page used to take us half a day to create and optimize.
With SEOmatic, we can create hundreds of pages in the same time, which helps our clients make the best use of their budget.
It's transformed how we deliver scalable SEO solutions.
Will Hawkins
Marketing Director, Digi-Business UK
Agents read your Search Console data, do the work, and prove what actually moved. You decide what ships.
14-Day Free Trial. $1 card check, refunded. Cancel Anytime.
Use SEOmatic in n8n workflows: read your Search Console data, audit pages, track how AI assistants mention your brand, order articles, and approve the changes SEOmatic's SEO agent proposes. A trigger starts a workflow when something happens in SEOmatic.
The n8n-nodes-seomatic package (version 2.0.1, open source on GitHub) adds two nodes:
The node installs on self-hosted n8n. On n8n Cloud, use Zapier or Make, or call the REST API from n8n's HTTP Request node.
https:// address for n8n.Only an n8n owner or admin can install community nodes. The node installs on self-hosted n8n; on n8n Cloud, use Zapier or Make, or the HTTP Request node with the REST API.
n8n-nodes-seomaticTick I understand the risks of installing unverified code from a public source, then click Install.
n8n's own guide covers the install screen and its options: installing community nodes from the n8n editor.
smk_ and is shown once.The node sends the key only to https://app.seomatic.ai, as a Bearer token, with a header that identifies the integration:
Authorization: Bearer smk_...
X-Seomatic-Client: n8nSEOmatic checks the plan on every call, including the credential test, so a workspace below Infrastructure is told at save time, not when a workflow runs.
Pull your top Search Console queries into n8n. This needs Google Search Console connected in SEOmatic.
Credential SEOmatic API
Resource Search Performance
Operation Get Queries
Limit 10
Options Days: 28The node returns one item per query. Numbers below are examples; click rate and position arrive as strings.
{
"query": "seo agent for wordpress",
"clicks": 42,
"impressions": 1310,
"ctr": "3.2%",
"position": "7.4"
}Next, send the items to Slack or Google Sheets, or swap the Manual Trigger for a Schedule Trigger to run it every Monday.
Several read operations have a Simplify switch that trims the output to the fields most workflows map. Operations that spend money or credits say so in their description.
Data from your own Google Search Console property. Needs Search Console connected in SEOmatic.
| Operation | What it does | Parameters |
|---|---|---|
| Get Queries | The searches people use to find your site, one item per query (clicks, impressions, click rate, position). | Limit (1 to 1000). Options: Days (1 to 90, default 28). |
| Get Pages | Your pages that get the most clicks from Google, one item per page. | Limit (1 to 1000). Options: Days (1 to 90, default 28). |
| Compare Periods | Compares the latest period with the one right before it and lists the biggest losers and winners by clicks. | Options: Compare By (Page or Search Query), Days (7 to 45, default 28), Rows Per Period (10 to 10000, default 500). |
| Find Competing Pages | Searches where two or more of your pages compete and split the clicks. | Options: Days (7 to 90), Minimum Impressions (default 100). |
| Find Low Click Rate Pages | Pages that get far fewer clicks than their position should earn, with the estimated missed clicks. | Options: Days (7 to 90), Minimum Impressions (default 200). |
| Get Monthly Trend | 16 months of monthly clicks and impressions with a year-over-year verdict: real drop or seasonal dip. | None. |
| Check Indexing | Whether Google has indexed a page, and why not. | Page URL, Simplify. |
Crawls and scores pages. No Search Console needed.
| Operation | What it does | Parameters |
|---|---|---|
| Run | Crawls up to 30 pages and finds issues across pages: dead pages, broken internal links, duplicate titles and descriptions, missing descriptions, thin content, pages hidden from Google, canonical mismatches, redirects, slow pages. | Options: Page URLs (up to 30) or Number of Pages (3 to 30, default 20). Simplify returns a count per issue. |
| Analyze Page | Scores one page from 0 to 100 and lists its issues by severity. | Page URL, Simplify. |
How AI assistants mention your brand.
| Operation | What it does | Parameters |
|---|---|---|
| Get | Reads the latest completed scan: visibility per AI engine, the prompts where your brand was missed, top competitors. Free: never starts a scan. | Options: Scan ID. Simplify. |
| Run Scan | Starts a new scan of your site or a competitor and returns a scan ID right away. The scan takes a few minutes. Read it with Get or the AI Visibility Scan Completed trigger event. | Options: Competitor Domain. |
The questions your AI visibility monitor asks every AI engine.
| Operation | What it does | Parameters |
|---|---|---|
| Create | Adds a tracked prompt. Limited by your plan. | Prompt. Options: Language Code and Location Code (set both, or neither for your main monitor). |
| Get Many | Lists tracked prompts, one item per prompt. | Return All, Limit. Options: Language Code, Location Code. |
| Update | Changes the wording, pins it, or pauses and resumes it. | Tracked Prompt (from list or ID). Update Fields: Prompt, Pinned, Active. |
| Delete | Deletes a tracked prompt. Past scan results are kept. Returns {"deleted": true}. | Tracked Prompt (from list or ID). |
The work SEOmatic's SEO agent proposes, runs and measures. Needs the SEO agent turned on in SEOmatic.
| Operation | What it does | Parameters |
|---|---|---|
| Get Many | Lists tasks on the agent's board, highest priority first, one item per task. Up to 20 tasks. | Max Tasks (1 to 20). Filters: Status, Type. Simplify. |
| Get | One task with its reasoning, expected impact and latest activity. The raw output includes stagedReview when the agent held a change for review. | Task (from list or ID), Simplify. |
| Approve | Approves a proposed task so it runs through the agent's safety checks. Tasks that hide a page from Google (noindex) or redirect it also need Confirm Noindex or Redirect. | Task. Options: Confirm Noindex or Redirect. |
| Dismiss | Dismisses a proposed task and archives it. | Task. |
| Execute | Runs an approved task now, or releases a change the agent held for review. Approve already starts most tasks within seconds. | Task. Options: Confirm Noindex or Redirect, Review Token. |
| Roll Back | Restores the page as it was before the agent's edit. Refuses if someone edited the page afterwards, unless Overwrite Newer Edits is on. Runs in the background: check the result with Get. | Task. Options: Overwrite Newer Edits. |
Pay-as-you-go articles, paid from a prepaid balance.
| Operation | What it does | Parameters |
|---|---|---|
| Generate | Orders one in-depth SEO article ($9 from the prepaid balance). Returns an article_id right away; writing takes a few minutes. | Topic. |
| Get | One article with its status and, once ready, its markdown and HTML. Simplify drops the HTML copy. | Article (from list or ID), Simplify. |
| Get Many | Your 20 most recent articles, one item per article. | Return All, Limit. |
Pick one or more events. When you activate the workflow, the trigger registers your n8n webhook address with SEOmatic for those events, and removes it when you deactivate the workflow.
| Event | Key | Fires when |
|---|---|---|
| SEO Task Awaiting Approval | task.awaiting_approval | The SEO agent proposed a task that needs your decision. |
| SEO Task Completed | task.completed | A task finished running. |
| Campaign Completed | campaign.completed | Every task in a campaign has settled. |
| Page Published | page.published | A page went live on your site. |
| Page Publish Failed | page.publish_failed | SEOmatic could not publish a page. |
| AI Visibility Scan Completed | ai_visibility.scan_completed | A scan finished, with results per AI engine. |
Each event arrives as one item:
{
"event": "task.awaiting_approval",
"workspace_id": "...",
"created_at": "2026-09-24T10:00:00.000Z",
"data": {
"task_id": "...",
"type": "ctr_fix",
"title": "Rewrite the title of /pricing",
"target": "https://example.com/pricing",
"approve_in_app": "https://app.seomatic.ai/dashboard/agents"
}
}Every delivery is signed. The trigger checks the X-Seomatic-Signature header (HMAC-SHA256 of the timestamp and body, with the secret SEOmatic returned when the webhook was registered), refuses deliveries older than five minutes, and ignores anything that does not match. The Webhooks page documents every event's payload fields.
SEOmatic does not send events to http://or private addresses, so "Listen for test event" on localhost fails with "SEOmatic can only send events to an https:// address". On self-hosted n8n, set your public address:
WEBHOOK_URL=https://n8n.example.com/A workspace can have up to 25 webhook endpoints. Each active trigger, and each "Listen for test event" while it listens, registers one. Past 25, activation fails with a 409 error; remove an endpoint to free a slot.
See n8n's guide to configuring the webhook URL.
| Workflow | Nodes |
|---|---|
| Approve SEO fixes from Slack | SEOmatic Trigger (SEO Task Awaiting Approval) > Slack (Send and Wait for Response, approval buttons) > IF approved > SEOmatic (SEO Task > Approve or Dismiss, task ID from the trigger). |
| Weekly SEO report | Schedule Trigger (Monday 8:00) > SEOmatic (Search Performance > Compare Periods) > SEOmatic (Search Performance > Find Low Click Rate Pages) > Gmail or Slack. |
| Real traffic drop alarm | Schedule Trigger (daily) > SEOmatic (Search Performance > Get Monthly Trend) > IF (yoy.verdict starts with "Real decline") > Slack. |
| Indexing watch for new pages | SEOmatic Trigger (Page Published) > Wait (3 days) > SEOmatic (Search Performance > Check Indexing, Page URL {{ $json.data.url }}) > IF (verdict is not PASS) > email. |
| AI visibility tracker | SEOmatic Trigger (AI Visibility Scan Completed) > SEOmatic (AI Visibility > Get) > Google Sheets (a row per engine). |
| Article pipeline | Google Sheets (topics) > SEOmatic (Article > Generate) > Wait (10 minutes) > SEOmatic (Article > Get) > your CMS. |
| Site health check after a release | Webhook or GitHub trigger > SEOmatic (Site Audit > Run with the changed page URLs) > IF (broken internal links > 0) > alert. |
The n8n integration is part of the Infrastructure plan, like the Zapier integration. Enterprise includes it too. What each operation needs on top:
| Operations | What they need |
|---|---|
| Search Performance, Site Audit, AI Visibility > Get | Any API key. Search Performance also needs Google Search Console connected in SEOmatic. |
| AI Visibility > Run Scan, Tracked Prompt (all), SEO Task (all) | A key created with Allow this key to make changes. SEO Task operations also need the SEO agent turned on. |
| Article > Generate | A prepaid article balance ($9 per article). Get and Get Many are free reads. |
| SEOmatic Trigger | A public https:// address for your n8n instance. |
insufficient_credits.Plans and prices: pricing.
The node explains each error and how to fix it. Turn on Continue On Fail in the node settings to get errors as items with an error field instead of stopping the workflow.
| Error | Cause | Fix |
|---|---|---|
| SEOmatic did not accept the API key (401) | The key is wrong, revoked, or was pasted with extra characters. | Create a key in Settings > AI Agents > API Keys and update the SEOmatic API credential. |
| The SEOmatic n8n integration needs the Infrastructure plan (402) | The workspace is not on a plan that includes the n8n integration (code AUTOMATION_NOT_ENTITLED). | Upgrade to Infrastructure; the error description has the upgrade link. |
| This operation is not available for this API key (404) | The operation isn't available to this key: an operation that makes changes with a read-only key, a Search Performance operation without Search Console connected, or an SEO Task operation with the SEO agent off. | The error description says which: use a key created with Allow this key to make changes, connect Search Console, or turn on the SEO agent. |
| Search Console not connected | A Search Performance operation on a workspace with no Search Console property. | Connect it at app.seomatic.ai/connect/gsc, then run the node again. |
| Empty article balance (Generate) | No prepaid articles left. | The error gives the price and a top-up link. |
| Too many requests to SEOmatic in a short time (429) | The key passed its rate limit (see Plans and limits). | Wait a minute and run again, or turn on Retry On Fail in the node settings. |
| Tool '...' is still running after 60s. It was not stopped. (504) | The operation took longer than 60 seconds. It keeps running in SEOmatic; it was not stopped. | Check the outcome (for example SEO Task > Get) before running an operation that makes changes again. |
| Activation fails: 'SEOmatic can only send events to an https:// address' | n8n's webhook address is http://, localhost or a private address. | Set WEBHOOK_URL to a public https:// address, then activate again. |
insufficient_credits is not an error. When AI Visibility > Run Scan cannot be covered by the workspace's AI credits, no scan starts and the result arrives as a normal output item with status: "insufficient_credits". Check status before using the result. Add credits, or run the scan from the SEOmatic app; Get still reads the last scan for free.
https://app.seomatic.ai. The node reads no environment variables or files.The node installs on self-hosted n8n from npm. On n8n Cloud, use the Zapier or Make integration, or call the SEOmatic REST API from n8n's HTTP Request node with your API key.
The Infrastructure plan, the same plan as the Zapier integration. Enterprise includes it too. On other plans the credential test fails with a message that says so.
Only through the SEO Task operations, and only with a key created with Allow this key to make changes. Approve is a decision: if a workflow calls it automatically, the workflow is approving for you. Keep a person in the loop, for example with an approve-from-Slack workflow (see Example workflows).
No. Run Scan uses the workspace's AI credits. If they cannot cover the scan, no scan starts and the output item has status insufficient_credits. Prepaid scans are only spent from the SEOmatic app or an MCP agent.
2.0.0 replaces the 1.x Tool and Arguments (JSON) fields with typed resources and operations. Open each SEOmatic node and pick the matching operation.