The {{...}} placeholder syntax lets you pull live values from your destination Google Sheet into any part of an API Source request — URL, headers, or body — at the moment the connection runs.
Where this works: API Source connections whose destination is a Google Sheets file. Connections writing to Excel, BigQuery, CSV, Dropbox, etc. ignore the syntax — placeholders are sent as literal {{...}} text.
New to A1 Notation? Start with the Basic Guide first.
1. Syntax at a glance
{{ <tab>!<reference> [|<filter>]* }}
{{and}}— double braces (always two on each side).<tab>— the worksheet (tab) name in your destination spreadsheet.!— separator between tab name and cell reference.<reference>— a cell likeA1or the special formA:last.|<filter>— optional; chain as many as you need, applied left-to-right.
Placeholder | Meaning |
| Cell A1 of Sheet1, formatted display value (default). |
| Last non-empty cell in column A of Sheet1. |
| Tab name with a space — must be wrapped in single quotes. |
| Cell A1 as the raw (unformatted) value. |
| Parse A1 as a date, output as ISO date. |
| Cell A1 trimmed and uppercased. |
2. Tab names
Tab name | Placeholder example |
Letters, digits, underscore (no spaces) |
|
Contains a space or special character |
|
Contains a literal apostrophe | Double it: |
When in doubt, always wrap the tab name in single quotes — that form works for any name.
3. Cell references
Form | What it returns |
| A single cell. |
| The single cell in column A at the last non-empty row in that column. |
Only single cells are supported. Ranges like A1:B5 are not supported. The column letter and last keyword are case-insensitive.
4. Render mode (first filter, if used)
Controls how the cell value is read from Google Sheets. If omitted, defaults to F.
Filter | What you get | Example: cell formatted as $1,234.50 |
| Exactly what the cell displays — locale-aware, formatted text. |
|
| Raw underlying value: numbers as numbers, booleans as TRUE/FALSE. |
|
Note: F or U must be the first filter if used. {{Sheet1!A1|trim|U}} is invalid and will be left as literal text.
5. String filters
Filter | Effect | Example |
| Removes leading and trailing whitespace. |
|
| Uppercases the string. |
|
| Lowercases the string. |
|
6. Numeric filters
Filter | Effect |
| Convert to integer. Truncates toward zero. TRUE→1, FALSE→0. |
| Convert to float. |
Warning: |int and |float fail loudly (stop the run) if the value is not numeric. For example, |int on "abc" is an error.
7. Date input filters
These filters parse the cell value into a date. They fail loudly if parsing isn't possible.
Filter | What it does |
| Auto-detect format (US-leaning on ambiguous dates like 01/02/2026 → Jan 2). |
| Force US interpretation (month first). 01/02/2026 → January 2. |
| Force EU interpretation (day first). 01/02/2026 → February 1. |
| Strict ISO 8601 only (e.g. 2026-05-06). |
By itself, a date filter outputs an ISO datetime (e.g. 2026-05-06T14:30:45). To get a different format, chain a fmt:* filter after it.
8. Date output filters — fmt:*
Format a date that has already been parsed. Always chain after a date input filter — used alone they are a no-op.
All examples assume parsed datetime: 2026-05-06 14:30:45
Filter | Output |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mnemonic: _dt = datetime (with time), _d = date only.
9. Where placeholders go in a request
URL — automatically URL-encoded. Keep placeholders in the path or query string, not in the scheme or hostname.
https://api.example.com/products/{{Sheet1!A1}}
https://api.example.com/search?q={{Sheet1!B2}}&limit=10
Headers — substituted verbatim (CR/LF stripped).
Authorization: Bearer {{Sheet1!A1}}
Body — substituted verbatim, no automatic escaping. You are responsible for placing the placeholder correctly inside your JSON/XML/form body.
{ "year": "{{Sheet1!A1}}" } ← becomes: { "year": "2026" }
{ "year": {{Sheet1!A1|U}} } ← becomes: { "year": 2026 } (unquoted)
Warning: If the cell value contains a " character and you place the placeholder inside a JSON string, the result will be invalid JSON. The system does not auto-escape. Use |trim or preprocess your data if needed.
10. Full examples
Filter products by year stored in a config tab
{ "filter": { "year": { "gte": "{{Config!B2}}" } } }
→ { "filter": { "year": { "gte": "2024" } } }
Use the most recent date in a column as a "since" parameter
https://api.example.com/events?since={{Log!A:last|date|fmt:iso_dt}}
→ https://api.example.com/events?since=2026-05-06T14%3A30%3A45
Mix US-formatted dates from a sheet into an EU-format API
{ "from": "{{Reports!A1|date_us|fmt:eu_d}}" }
→ { "from": "31/12/2025" } (if Reports!A1 = 12/31/2025)
Tenant ID + auth token from config
URL: https://api.example.com/tenants/{{Config!A1}}/users
Header: Authorization: Bearer {{Config!B1|trim}}
11. What is not supported
What you tried | Result |
| ❌ Only single cells supported. |
| ❌ Treated as literal text. Use |
| ❌ Treated as literal text. Use |
| ❌ Not recognized. |
| No-op — value passes through unchanged. |
Destination is not Google Sheets | Placeholders sent as literal text, no warning. |
12. What happens when something goes wrong
Situation | Behaviour |
Invalid syntax / unknown filter | Treated as literal text — run continues, your API receives |
Tab name doesn't exist | Run fails with a clear error naming the placeholder. |
Cell is empty | Substituted as empty string |
Cell out of grid bounds | Substituted as |
| Substituted as |
Numeric or date conversion fails | Run fails with a clear error. |
Network failure reading the sheet | Retries up to 3 times with exponential backoff before failing. |
13. Quick-reference cheat sheet
{{ <tab>!<ref> [|<filter>]* }}REF : A1, AB42, A:last (case-insensitive)
TAB : Sheet1, my_tab, 'Quoted Name', 'O''Brien'RENDER (must be 1st if used; default = F)
F formatted display value
U raw underlying valueSTRING
trim strip whitespace
upper uppercase
lower lowercaseNUMERIC
int to integer (errors on non-numeric)
float to float (errors on non-numeric)DATE INPUT
date auto-detect
date_us US (month first)
date_eu EU (day first)
date_iso strict ISO 8601DATE OUTPUT (no-op without a date input)
fmt:day / fmt:month / fmt:year
fmt:timestamp Unix seconds (10 digits)
fmt:timestamp_ms Unix milliseconds (13 digits)
fmt:serial Sheets serial
fmt:iso_dt / fmt:iso_d
fmt:us_dt / fmt:us_d
fmt:eu_dt / fmt:eu_d

