Auto-fill your Airtable reading list from any DOI
Paste a DOI into your Airtable reading list and get the title, authors, journal, publisher, abstract, and publication date back in the same row.
Build me a code workflow that auto-enriches new rows in my Airtable reading list with scholarly metadata from Crossref.
Trigger: an Airtable poll on the new_record event for my Reading List table. The table has a DOI column plus columns I want filled in by the workflow.
When a new row arrives, read its DOI value. If the DOI cell is empty or does not look like a real DOI (no 10. prefix, no slash), set the row's Status field to "Invalid DOI" via Airtable Update Record and stop. Otherwise call Crossref's Get Work by DOI operation for that DOI.
If Crossref returns 404, set the row's Status field to "Not Found" via Airtable Update Record and stop. Do not fail the run on 404; it is an expected outcome for unknown DOIs.
If Crossref returns the work, map fields from the response onto the same Airtable row using Update Record. Populate: Title (first entry of message.title), First Author (the first author's given + family name), Author Count (length of message.author), Journal (first entry of message.container-title), Publisher (message.publisher), ISSN (first entry of message.ISSN), Publication Date (the earliest of message.published-print, message.published-online, or message.issued, formatted as YYYY-MM-DD), Work Type (message.type), Abstract (message.abstract, stripped of JATS XML tags), License URL (first entry of message.license[].URL if present), Funder (first entry of message.funder[].name if present), Cited By Count (message.is-referenced-by-count), Canonical URL (https://doi.org/ followed by the DOI), and Status set to "Enriched".
Crossref is a no-auth public API. Send a polite-pool User-Agent that includes a mailto so we get the higher rate limit. The response envelope wraps data under message, so read fields from there.
Keep the flow strictly deterministic. No LLM step. This is a code workflow: read DOI, validate, call Crossref, map fields, write back to Airtable.
Additional information
What does this prompt do?
- Watches your Airtable reading list and triggers the moment a new row with a DOI lands.
- Looks up the paper in Crossref's public scholarly metadata catalog and pulls back title, first author plus author count, journal, publisher, ISSN, publication date, work type, abstract, license link, funder, citation count, and a clean doi.org URL.
- Writes everything back to the same Airtable row, so a single DOI paste becomes a fully described entry.
- Handles missing or unknown DOIs gracefully by stamping a Status field as Invalid DOI or Not Found instead of failing the run.
What do I need to use this?
- An Airtable workspace with a reading list table that has a DOI column and the metadata columns you want filled in (title, authors, journal, publisher, ISSN, publication date, abstract, license, funder, citation count, URL, status).
- An Airtable login with permission to read and update that base. No Crossref account is required, the catalog is public.
How can I customize it?
- Change which columns get populated, for example drop the abstract if you keep notes elsewhere, or add ORCID and references count.
- Adjust how often the workflow checks Airtable for new rows so freshly pasted DOIs enrich faster or slower.
- Tighten the Status field options, for example add an Enriched value once the lookup succeeds so you can filter the table by what is already done.
Frequently asked questions
Do I need a Crossref account or API key?
What happens if I paste a DOI that does not exist?
What if the DOI column is empty or clearly malformed?
Will this overwrite values I have already filled in by hand?
Can I use this with a Notion or Google Sheets reading list instead?
Stop hand-typing metadata for every paper you save.
Connect Airtable once, paste a DOI, and your reading list fills itself in seconds.