n8nAutomationTutorialGeolocationExchange Rates

Automating Geo-Enrichment Workflows with n8n + ApogeoAPI

ApogeoAPI7 min read

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:

  1. IP enrichment → Slack alert — detect where new signups come from and post a card to Slack
  2. CRM currency normalization — read leads from a Google Sheet, convert deal values to USD, write back
  3. 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

ResourceOperationsPlan required
CountryGet Country, List Countries, Search Countries, Get States, Get CitiesFree / Basic
IP GeolocationGeolocate IPBasic+
Exchange RateGet Rate, List All RatesBasic+

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

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