{
  "name": "ApogeoAPI \u2014 Enrich visitor IP and notify Slack",
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "visitor-track",
        "responseMode": "onReceived"
      },
      "name": "Webhook (visitor signup)",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [
        240,
        300
      ]
    },
    {
      "parameters": {
        "resource": "ip",
        "operation": "geolocate",
        "ip": "={{ $json.body.ip }}"
      },
      "name": "ApogeoAPI: Geolocate IP",
      "type": "n8n-nodes-apogeoapi.apogeoapi",
      "typeVersion": 1,
      "position": [
        460,
        300
      ],
      "credentials": {
        "apogeoApiCredentials": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "channel": "#signups",
        "text": "=:wave: New visitor from {{ $json.country.name }} {{ $json.country.flagUrl }}\\nCity: {{ $json.city.name }}\\nTimezone: {{ $json.timezone.name }} ({{ $json.timezone.offset }})\\nIP: {{ $node['Webhook (visitor signup)'].json.body.ip }}",
        "otherOptions": {}
      },
      "name": "Slack: post message",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2,
      "position": [
        680,
        300
      ],
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Webhook (visitor signup)": {
      "main": [
        [
          {
            "node": "ApogeoAPI: Geolocate IP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ApogeoAPI: Geolocate IP": {
      "main": [
        [
          {
            "node": "Slack: post message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {},
  "staticData": null,
  "meta": {
    "templateCreatedBy": "ApogeoAPI",
    "description": "Whenever a webhook fires with an IP address (e.g. from your signup form), enrich it with country, city, and timezone data via ApogeoAPI, then post a formatted message to Slack. Drop-in template \u2014 just configure your Slack channel and the webhook URL on your form.",
    "useCases": [
      "Sales: see prospect country in real time",
      "Ops: detect unusual signup geographies",
      "Marketing: route leads to country-specific reps"
    ]
  }
}