Track country economic indicators in Google Sheets, refreshed monthly
On the first of every month, pull the latest World Bank values for the countries and indicators you list and append them to your tracking sheet in tidy long format.
On the first day of every month at 06:00, refresh a "country indicators" tracking sheet in Google Sheets with the latest World Bank values. This is a deterministic ETL pipeline with no judgement step.
Trigger: cron, monthly on the 1st at 06:00. Workflow type: code (discrete nodes, deterministic flow).
Inputs the workflow should expose: the Google Sheets spreadsheet ID, the name of the config tab (default "config"), and the name of the data tab (default "data").
Step 1. Read the configuration tab from Google Sheets using the Get Values operation. The config tab has a header row and three columns starting in row 2: country_code (ISO 3-letter, e.g. USA, BRA, EUU), indicator_code (e.g. NY.GDP.MKTP.CD), and indicator_label (a human-friendly name like "GDP, current US$"). Read the full range to learn which (country, indicator) pairs to refresh on this run.
Step 2. For each (country_code, indicator_code) pair from the config tab, call World Bank's Get Indicator Data operation. Pass mrnev=1 so the API returns only the most recent non-empty observation along with its year. Also pass format=json and a generous per_page. Important: World Bank JSON responses are a two-element array shaped [meta, rows], so destructure both halves and read the value, date (year), and country.value (country name) from the first row. If the response has no rows or value is null, skip the pair instead of appending a blank row.
Step 3. Append one row per successful pair to the data tab using Google Sheets' Append Values operation. Use long/tidy format with these columns in this order: country_code, country_name, indicator_code, indicator_label, year, value, fetched_at. fetched_at is the workflow run timestamp in ISO 8601. Append only, never overwrite, so history accumulates over each monthly run. Use valueInputOption USER_ENTERED so numbers and dates are parsed by Sheets.
Keep the long format (one observation per row) so analysts can pivot the sheet however they like. Both integrations are world-bank (Get Indicator Data) and google-sheets (Get Values, Append Values). No auth is required for World Bank; Google Sheets uses OAuth.
What does this prompt do?
- On the first of every month at 6am, reads your list of countries and indicators from a config tab in your Google Sheet.
- Looks up the most recent World Bank value for each country and indicator pair, along with the year that value comes from.
- Appends a new row per pair to your data tab, so history builds up over time and nothing is overwritten.
- Lands the data in tidy long format (one row per country, indicator, year, value) so you can pivot, chart, or join it however you like.
What do I need to use this?
- A Google account with edit access to the tracking spreadsheet.
- A Google Sheet with two tabs: a config tab listing the countries and indicators to track, and a data tab where new rows will be appended.
- No World Bank login. The World Bank data API is free and public.
How can I customize it?
- Change the schedule. Run weekly, quarterly, or on a specific weekday instead of the 1st of the month.
- Edit the config tab to add or remove countries and indicators without touching the workflow itself.
- Pull a longer history instead of just the latest reading, for example the last 5 or 10 years of each series.
FAQs
Where do I find World Bank country and indicator codes?
Will this overwrite the data already in my sheet?
What happens if World Bank has no recent value for a country and indicator?
Can I track aggregates like the European Union or World totals?
Do I need a paid plan for any of this?
Related templates
Stage a batch of filings overnight, then approve each completed form from a screenshot before anything is ever submitted.
Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.
Work every return, damage and warranty claim in one queue, with the order, the delivery date and a policy-backed recommendation already on screen.
See exactly which ingredients next week needs based on what you actually sold, adjust anything by hand, then build a one-click grocery cart.
See follower growth, posting cadence, format mix and engagement rate for your brand and every competitor you track, side by side on one board.
Open one screen to see how every service in your Jobber price book actually performed: how often it sold, what you charged, and where prices swing.
Stop pasting World Bank values into your sheet every month.
Connect Google Sheets once, list the countries and indicators you care about, and the latest values land in your tracker on the first of every month.