
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 Trial for $1, credited to your first payment.
Make.com SEO automation with the SEOmatic app: run any SEOmatic tool from a Make scenario, from Search Console queries and site audits to AI visibility and SEO tasks. Pick a tool, pass its arguments as JSON, and map the parsed result into the next module.
The SEOmatic app for Make has four modules. It calls the SEOmatic REST API with your API key, so every tool your key can use is available in a scenario.
| Module | Type | What it does |
|---|---|---|
| Run a tool | Action | Runs one SEOmatic tool with the arguments you give it. The result comes back parsed, so you can map its fields directly. |
| List tools | Search | Lists the tools your API key can run, with each tool's description, whether it makes changes, and the arguments it accepts. |
| Make an API call | Universal | Calls any SEOmatic REST endpoint under /v1, for example GET /v1/me. It can only reach https://app.seomatic.ai/api. |
| Watch Events | Instant trigger | Starts the scenario the moment an SEOmatic event happens, for example a new Google review or a ranking drop. |
The app is published by invite link, not listed in Make's app directory. Open the link while signed in to Make and install it in your organization:
https://www.make.com/en/hq/app-invitation/55fd46a2daac3c6a9c33c73637a8351eapp.seomatic.ai and open Settings > AI Agents > API Keys.Make) and click Create key.smk_ and is shown once.New keys are read-only: they read your data and run analysis tools. Tick Allow this key to make changes only if the scenario needs tools that change your site. That option needs a live subscription or trial, and edits made this way are staged in SEOmatic for your approval.
GET /v1/me. A wrong key or a workspace that is not on Infrastructure fails here, with the reason.The connection list shows your workspace name followed by (read-only) or (can make changes), so you can tell keys apart. Every request the app sends carries:
Authorization: Bearer smk_...
X-Seomatic-Client: makePull your top Search Console queries into Make:
Tool get_search_queries
Arguments {"days": 28, "limit": 10}The module outputs three fields. Resultis the tool's output parsed into fields; numbers below are examples:
Tool get_search_queries
Result {
"siteUrl": "sc-domain:example.com",
"period": "Last 28 days",
"totalResults": 10,
"queries": [
{ "query": "seo agent for wordpress", "clicks": 42,
"impressions": 1310, "ctr": "3.2%", "position": "7.4" }
]
}
Raw result the same output as JSON textNext, add an Iterator on Result: queries and send each row to Google Sheets or Slack. Search Console tools need Search Console connected in SEOmatic.
| Field | What to enter |
|---|---|
| Tool | Pick from the list. It shows only the tools your key can run, and marks tools that change your site with (makes changes). When mapping, enter the tool name, for example get_search_queries. |
| Arguments | The tool's arguments as a JSON object. Leave empty to use the tool's defaults. |
| Output | Contents |
|---|---|
| Tool | The tool that ran. |
| Result | The tool's output, parsed into fields you can map. Run the module once and Make offers every field. |
| Raw result | The same output as JSON text, for an AI module or storage. |
Returns one bundle per tool, up to Limit(default 200). Use it to find a tool's name and its arguments.
| Output | Contents |
|---|---|
| Name | The tool name to use in Run a tool. |
| Description | What the tool does. |
| Makes changes | True for tools that change your site. |
| Input schema | The arguments the tool accepts. |
Calls any endpoint in the REST API reference. Enter the path after https://app.seomatic.ai/api; the connection adds authorization for you. Put query parameters in Query string, not in the URL.
URL /v1/me
Method GETThe output has the response Body, Headers and Status code.
The connection's API key needs the admin role in the workspace, because a subscription is a webhook. It needs the Infrastructure plan, and a workspace holds up to 25 webhooks and triggers in total.
| Event | Value | When it fires |
|---|---|---|
| Page Published | page.published | A page went live on your site. |
| Page Publish Failed | page.publish_failed | SEOmatic could not publish a page to your site. |
| Task Awaiting Approval | task.awaiting_approval | The SEO agent staged work that needs your decision. |
| Task Approved or Dismissed | task.decided | Someone approved or dismissed an agent task. |
| Task Completed | task.completed | An SEO agent task finished running. |
| Change Live on Your Site | task.live | SEOmatic saw an agent change on your live page. |
| Campaign Completed | campaign.completed | Every task in a campaign has settled. |
| AI Visibility Scan Completed | ai_visibility.scan_completed | An AI visibility scan finished. |
| Site Audit Completed | site_audit.completed | A deep site audit finished. |
| Ranking Dropped | ranking.dropped | A search that brings you clicks, or a search you track, slipped in Google. |
| Ranking Page Changed | ranking.page_changed | Google shows a different page of your site for a search you track. |
| New Google Review | review.received | A new review arrived on your Google Business Profile. |
| Weekly Business Profile Calls | business_profile.calls_report | Every Monday: last week's calls, direction requests and website clicks. |
| Business Profile Update Due | business_profile.update_due | This week's Business Profile update has not been drafted yet. |
| Possible Duplicate Listing | business_profile.duplicate_found | Another Google Maps listing looks like your business. |
Copy a tool name into Tool and the JSON into Arguments. The REST API reference lists every tool and argument.
| Goal | Tool | Arguments |
|---|---|---|
| Top search queries | get_search_queries | {"days": 28, "limit": 50} |
| Biggest losers and winners vs the previous period | compare_periods | {"dimension": "page", "days": 28} |
| Pages with a low click rate for their position | find_ctr_outliers | {"days": 28, "minImpressions": 200} |
| Is this page indexed? | inspect_url_indexing | {"url": "https://example.com/pricing"} |
| Audit 20 pages | site_audit | {"limit": 20} |
| Latest AI visibility scan (free read) | get_ai_visibility | {} |
| Proposed SEO tasks (key that can make changes) | list_seo_tasks | {"status": "proposed", "limit": 10} |
| Approve a task (makes changes) | decide_seo_task | {"taskId": "<task id>", "decision": "approve"} |
INSUFFICIENT_CREDITS (HTTP 402).504 TOOL_TIMEOUT and keeps running (see Errors and fixes).Plans and prices: pricing.
Error messages show SEOmatic's error text and code, never your key.
| Message | Cause | Fix |
|---|---|---|
| [401] Invalid or revoked API key. Create a key in SEOmatic under Settings > AI Agents > API Keys and paste it here. | Shown when you save the connection: the key is wrong or was revoked. The connection is not saved. | Create a key in Settings > AI Agents > API Keys and paste it into the connection. |
| [401] Missing or invalid API key. Create a new key in SEOmatic under Settings > AI Agents > API Keys, then update this connection. | Shown in a module: the key saved in the connection was revoked. | Create a new key and update the connection with it. |
| [402] ... (error code: AUTOMATION_NOT_ENTITLED) | The workspace is not on the Infrastructure plan. The Make app needs Infrastructure. | Upgrade the workspace to Infrastructure. The message includes the link. |
| [402] ... (error code: REST_ACT_REQUIRES_INFRA) | A tool that makes changes ran on a plan below Infrastructure. | Upgrade to Infrastructure, or use a read tool. The message includes the upgrade link. |
| [404] Unknown or unauthorized tool: <name> Pick a tool from the list, or use an API key that is allowed to run this tool. | The tool name is misspelled, the tool makes changes and the key is read-only, or it is a Search Console tool and Search Console is not connected in SEOmatic. | Pick the tool from the list, use a key created with Allow this key to make changes, or connect Search Console in SEOmatic. |
| [400] ...: <details> (error code: INVALID_ARGUMENTS) | A required argument is missing, or an argument has the wrong type. The details name the failing argument. | Check the tool's Input schema in List tools. Argument names are case-sensitive. |
| [429] Rate limit exceeded. Please try again later. Retry after N seconds. | The key passed its rate limit. The number of seconds comes from the Retry-After header. | Wait the seconds shown in the message, or space out the scenario. |
| [502] ...: <details> | The tool, or a provider it called, failed at runtime. | Retry. The details carry the cause. |
| [504] Tool '...' is still running after 60s. It was not stopped. (error code: TOOL_TIMEOUT) | The tool took longer than 60 seconds. It keeps running in SEOmatic. | Do not rerun a tool that makes changes straight away: check the outcome first. For a call you may need to repeat, use Make an API call to POST /v1/tools/{name} with an Idempotency-Key header, then repeat it with the same key to collect the answer. |
insufficient_credits is not an error. When the workspace's AI credits cannot cover run_ai_visibility_scan, no scan starts and the module outputs a normal bundle with Result: status = insufficient_credits. Check status before using the result, for example with a filter. Add credits, or run the scan from the SEOmatic app; get_ai_visibility still reads the last scan for free.
app.seomatic.ai. Make an API call only accepts paths like /v1/..., so it cannot send your key to another host.Anything your API key can run as a SEOmatic tool: Search Console reports, period comparisons, low click rate pages, indexing checks, site audits of up to 30 pages, AI visibility reads and, with a key that can make changes, approving the SEO tasks SEOmatic's agent proposes. The SEO scenario recipes table on this page has the tool name and arguments for each.
The SEOmatic app is published by invite link and is not listed in Make's public app directory. Open the invite link on this page to install it in your Make organization.
The Infrastructure plan, the same rule as the Zapier and n8n integrations, for read tools, tools that make changes and Watch Events alike. Enterprise includes it too. On another plan, the connection test fails with a message that says so.
Yes. Put SEOmatic > Watch Events first in the scenario and pick one event, such as New Google Review or Ranking Dropped. It needs the Infrastructure plan and an API key from a workspace admin. To listen to several events, add one Watch Events webhook per event.
No. run_ai_visibility_scan uses the workspace's AI credits. If they cannot cover the scan, the call is refused with INSUFFICIENT_CREDITS (HTTP 402) and nothing is spent. Prepaid scans are only spent from the SEOmatic app or an MCP agent.
Only with a key created with Allow this key to make changes. Edits made this way are staged in SEOmatic for approval. decide_seo_task is itself an approval, so a scenario that calls it approves for you. Use a read-only key unless the scenario really needs to make changes.