Automating Geo-Enrichment Workflows with n8n + ApogeoAPI
n8n is a powerful open-source workflow automation platform. With the ApogeoAPI community node, you can drop geographic data — country details, IP geolocation, live exchange rates, and cities — directly into any n8n workflow. No backend code required.
In this post, we'll build three real workflows:
- IP enrichment → Slack alert — detect where new signups come from and post a card to Slack
- CRM currency normalization — read leads from a Google Sheet, convert deal values to USD, write back
- Localized welcome email — send an email in the user's local currency on new form submission
Step 1: Install the ApogeoAPI node
In your n8n instance, go to Settings → Community nodes → Install and enter:
n8n-nodes-apogeoapi
After installation, restart n8n. The node appears under ApogeoAPI in the node panel.
You'll also need a free API key from apogeoapi.com (free tier: 1,000 requests/month — enough for testing all three workflows).
Workflow 1: IP enrichment → Slack alert
Trigger: HTTP Webhook (fires on every new user signup from your app)
Goal: detect the user's country and city from their IP, post a rich card to #signups
[Webhook] → [ApogeoAPI: Geolocate IP] → [Slack: Post message]
ApogeoAPI node config:
- Resource: IP Geolocation
- Operation: Geolocate IP
- IP Address:
{{ $json.ip }}(from your webhook payload)
The node returns fields like country_name, city, timezone, isp, and flag_url. Wire those into the Slack message block:
New signup: {{ $json.email }}
📍 {{ $('ApogeoAPI').item.json.city }}, {{ $('ApogeoAPI').item.json.country_name }}
🕐 Timezone: {{ $('ApogeoAPI').item.json.timezone }}
🔌 ISP: {{ $('ApogeoAPI').item.json.isp }}
That's it — 3 nodes, no code, full geo context on every signup alert.
Workflow 2: CRM currency normalization
Trigger: Schedule (daily at 6am)
Goal: read a Google Sheet of leads with deal_value in local currency, convert to USD, write back a deal_value_usd column
[Schedule] → [Google Sheets: Read] → [ApogeoAPI: Get Rate] → [Google Sheets: Update row]
In the ApogeoAPI node:
- Resource: Exchange Rate
- Operation: Get Rate
- Currency Code:
{{ $json.currency }}(e.g.EUR,ARS,BRL)
The node returns usdRate. In the next Google Sheets node, calculate:
deal_value_usd = {{ $json.deal_value / $('ApogeoAPI').item.json.usdRate }}
Rates are refreshed every 4 hours by ApogeoAPI. For most CRM use cases, that's more than accurate enough.
Tip: add an IF node before the ApogeoAPI call to skip rows where currency === "USD" — saves API quota.
Workflow 3: Localized welcome email
Trigger: n8n Form Trigger (or Typeform / Tally webhook)
Goal: when a lead submits a form with their country, look up the local currency and exchange rate, include it in the welcome email
[Form Trigger] → [ApogeoAPI: Get Country] → [Send Email]
In the ApogeoAPI node:
- Resource: Country
- Operation: Get Country
- Country Code:
{{ $json.country_code }}
The node returns currency_code, currency_name, and currency_rate (live USD rate). Use these in your email template:
Hi {{ $json.name }},
ApogeoAPI Basic is $19/month — that's roughly
{{ Math.round(19 * $('ApogeoAPI').item.json.currency_rate) }} {{ $('ApogeoAPI').item.json.currency_code }}
at today's rate.
Start your free 14-day trial: https://app.apogeoapi.com/register
Localized pricing without a Stripe localization plugin, a Shopify app, or any backend work.
Node capabilities at a glance
| Resource | Operations | Plan required |
|---|---|---|
| Country | Get Country, List Countries, Search Countries, Get States, Get Cities | Free / Basic |
| IP Geolocation | Geolocate IP | Basic+ |
| Exchange Rate | Get Rate, List All Rates | Basic+ |
Installing on n8n Cloud vs self-hosted
On n8n Cloud, community nodes must be "verified" before they're installable. The ApogeoAPI node is currently pending verification (we've submitted to the n8n Creator Portal). In the meantime, self-hosted n8n users can install it immediately from npm.
Self-hosted install (Docker):
# Add to your docker-compose environment:
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
# Then in the n8n UI:
# Settings → Community nodes → Install → n8n-nodes-apogeoapi
Get the node + workflow templates
- npm: npmjs.com/package/n8n-nodes-apogeoapi
- GitHub: APOGEOAPI/n8n-nodes-apogeoapi — includes the three workflow JSONs above (importable directly into n8n)
- API key: apogeoapi.com — free tier, no credit card
The node is MIT-licensed and the API has a free tier (1,000 req/month) and a 14-day full trial on signup. Questions or feature requests? Open an issue on the GitHub repo.
Try ApogeoAPI free
1,000 requests/month forever. 14-day full-access trial. No credit card.
Get your free API key