# Add location and internet provider to Airtable IP logs

> Every time a new IP address lands in your Airtable log, it gets the city, country and internet provider filled in automatically.

- Workflow type: code
- Services: IPinfo, Airtable
- Categories: Operations, Engineering
- Published: 2026-08-04

## What it does

- Watches your Airtable IP log and picks up each new row the moment it is added.
- Fills in the city, region, country, coordinates and time zone for that address, plus the name of the company or internet provider that owns it.
- Marks office and home network addresses as private instead of leaving the row half empty.
- Writes a short reason into a status column whenever a lookup does not succeed, so no row is left silently blank.

## What you'll need

- An Airtable base with a table where you log IP addresses.
- Columns ready to receive the details: city, region, country, coordinates, time zone, provider and a status column.
- An IPinfo account. The free tier covers city level location and provider names, which is everything this fills in.

## Prompt

Whenever a new record lands in my IP log table in Airtable, look the address up with IPinfo and write the results straight back onto that same record. Trigger this as a poll on Airtable for new records in the IP log table. Build it as a deterministic code workflow: there is no judgement involved, it is a straight field for field enrichment.

For each new record, read the IP address out of the address column and call the IPinfo "Get Full IP Details" operation on it. Map the response onto the matching Airtable columns using "Update Record", which patches only the fields I specify and leaves the rest of the row untouched.

Field mapping: city goes to City, region goes to Region, country goes to Country, and timezone goes to Timezone. The loc field comes back as a single "latitude,longitude" string, so split it on the comma and write Latitude and Longitude separately, or write it through whole if the table has a single Coordinates column instead. The org field is one combined string like "AS15169 Google LLC" rather than separate fields, so split it on the first space: the leading ASxxxxx token goes to the ASN column and everything after it goes to the Network Owner column.

Handle two edge cases explicitly. First, private and bogon addresses such as 10.x.x.x and 192.168.x.x come back as {"ip": "...", "bogon": true} with no geolocation or ASN data at all. When that flag is set, skip the geo mapping entirely, write "Private" into the status column, and leave the geo columns empty. The row should read as deliberately private rather than as a lookup that never ran.

Second, if a lookup fails for any other reason, write the reason into the status column instead of leaving the row silently empty. Cover an invalid or unparseable value in the source column, a 401 for a bad token, a 429 when the IPinfo quota is exhausted, and a 403 when the requested data is not included in the current plan. Keep the text short and human readable, for example "Invalid IP", "Rate limited" or "Auth failed". On a clean enrichment, set the status column to "Enriched".

Every record the workflow touches must end up with something in the status column. Never leave a triggered row where all the enrichment columns are blank and there is no explanation why.

## How to customize

- Choose which columns get filled in. Drop any you do not need, or keep the provider name and its network number together in one column instead of splitting them apart.
- Change the wording written for private addresses and for failed lookups so it matches how your team reads the table.
- Point it at a different table or base, or run it on a second log table alongside the first.

## FAQ

### What information gets added to each row?

The city, region and country the address is registered to, its latitude and longitude, its time zone, and the name of the company or internet provider that owns it along with that provider's network number.

### What happens with internal addresses like 192.168.1.1?

Those are private network addresses that only exist inside an office or home network, so there is no public location to look up. The row is marked as private rather than left blank, so you can tell at a glance that it was checked and skipped on purpose.

### Do I need a paid IPinfo plan?

No. A free IPinfo account returns city level location and the provider name, which covers everything this workflow writes back. Paid plans add extras like VPN and proxy detection if you want them later.

### Will it change rows I already have in the table?

No. It only runs on rows added after you turn it on, and it only writes to the columns you point it at. Everything else on the row stays exactly as it was.

### How soon does a new row get filled in?

It checks your table for new rows on a regular cycle, so a freshly logged address is usually enriched within a few minutes of being added.

Use this prompt in General Input: https://www.generalinput.com/prompts/add-location-and-internet-provider-to-airtable-ip-logs