Run the Google Business Profile Optimizer from n8n
One workflow, five nodes, all core n8n: trigger → set the input → call the API → shape the result → email it.
Import it in n8n via Workflows → Import from File.
The workflow
Trigger → Set → HTTP Request → Set → Email
1. Manual or Schedule Trigger
Start the workflow by hand, or on a schedule (n8n-nodes-base.scheduleTrigger) to run the audit weekly.
2. Set — business input
A Set node before the HTTP request defines businessName and city, so the workflow has something to send on a manual run.
3. HTTP Request — the audit
POST to https://api.locan.ai/api/tools/gbp-optimizer with a JSON body of { businessName, city } (or { placeId } if you already have one).
4. Set — edit fields
Map the fields you want out of the response: score, grade, summary, recommendations, ai.optimizedDescription.
5. Send Email (or Slack)
Email the mapped fields to whoever owns the profile. Swap the Send Email node for n8n-nodes-base.slack to post to a channel instead — the fields feeding it stay the same.
Exact request
The HTTP Request node, in detail
Method: POST
URL: https://api.locan.ai/api/tools/gbp-optimizer
Body type: JSON
={{ JSON.stringify({ businessName: $json.businessName, city: $json.city }) }}
The response is JSON with score, grade, summary,
checks, recommendations and an ai object (optimized
description, post ideas, FAQs, review reply templates, citation ideas). Errors come back as
{ "error", "code" }, with a 429 when the daily limit is hit.
Limits
Hosted limits apply — self-host to remove them
The hosted API enforces daily per-visitor limits, so a scheduled workflow calling it for many
businesses can hit them. Self-hosting removes the limits — point the HTTP Request node's URL at
your own instance instead, for example http://localhost:8080/api/tools/gbp-optimizer.