How to use macros in Coupler.io data flows?
Macros in Coupler.io allow you to interpolate date and date-time ranges in your data flow’s settings, automating repetitive tasks.
This guide will help you understand and use these macros effectively.
Check out the Coupler.io Macros Generator to optimize your flow.
Table of Contents
- What are Macros?
- Macro Syntax
- Supported Date Macros
- Date Macros Usage Examples
- Supported Date-Time Macros
- Date-Time Macros Usage Examples
- Supported Macros Custom Formats
- Macros Custom Format Examples
- Where we can use Macros?
1. What are Macros?
Macros are automated input sequences that allow you to interpolate date and date-time strings in your Coupler.io data flow settings.
For example: you don’t have to manually specify yesterday's date-time value in a report's parameters or JSON URL query. You can instead type {{yesterday}}
into this field, and the data flow will automatically interpolate it with yesterday’s date-time value.
Note: Our macros are converted to date/date-time using UTC+0 timezone so scheduling configuration and data timeframes must be planned accordingly.
Example:
2.Macro's syntax
The general syntax for macros is:
{{macro}}
3.Supported date macros
Note: Our macros are converted to date/date-time using UTC+0 timezone so scheduling configuration and data timeframes must be planned accordingly.
The default date format is YYYY-MM-DD which corresponds to the ISO 8601 date standard
today
yesterday
tomorrow
thisweekstart
this
can be replaced withlast
ornext
week
can be replaced withmonth
orquarter
oryear
start
can be replaced withend
weekago
week
can be replaced withmonth
orquarter
oryear
2weeksago
2weeksfromnow
2
can be replaced with any numeralweeks
can be replaced withdays
ormonths
orquarters
oryears
Tip:
To get data dynamically starting at the start/ end of some period, use the following custom macro format:
{{2monthsago.endof(month).format(YYYY-MM-DD)}}
2
can be replaced with any numeralmonths
can be replaced withdays
orweeks
orquarters
oryears
endof
can be replaced withstartof
month
can be replaced withday
orweek
orquarter
oryear
More on custom macro formats in the dedicated section below.
4.Date macros usage examples
Note: In the below examples, assume that today’s date is August 24th, 2024.
Parameter + macro | Parameter + Output |
start_date: {{today}} |
start_date: 2024-08-24 |
updated_at: {{thisweekstart}} |
updated_at: 2024-08-19 |
to: {{3monthsago}} |
to: 2020-05-24 |
to: {{1yearfromnow}} |
to: 2025-08-24 |
5.Supported Date-time Macros
Note: Our macros are converted to date/date-time using UTC+0 timezone so scheduling configuration and data timeframes must be planned accordingly)
The default date and time format is YYYY-MM-DD[T]hh:mm:ss[Z] which corresponds to the ISO 8601 date.
now
thishourstart
this
can be replaced withlast
ornext
start
can be replaced withend
hourago
2hoursago
2
can be replaced with any numeral
1hourfromnow
- 1 can be replaced with any numeral
6.Date-time macros usage examples
Note: In the below examples, assume that today’s date and time is August 24th, 2024-14:05 AM.
Parameter + macro | Output |
created_at: {{thishourstart}} |
created_at: 2024-08-24T14:00:00Z |
updated_since: {{5hoursago}} |
updated_since: 2024-08-24T09:05:00z |
created_at: {{3hoursfromnow}} |
created_at: 2024-08-24T17:05:00z |
7.Supported macros custom formats
Syntax
You can format each macro as needed using the following syntax:
{{macro.format(output-format)}}
macro
- specify the macro you needoutput-format
- specify the format you want the macro to outputdddd
- day of the week (e.g. Monday, Tuesday, Wednesday, etc.)DD
- day of the month (1-31)MM
- month (1-12)YYYY
- year (e.g. 2024)hh
- hour (0-24)mm
- minute (0-59)
Examples
{{2monthsago.format(YYYY-MM-DD)}}
2
can be replaced with any numeralmonths
can be replaced withdays
orweeks
orquarters
oryears
(YYYY-MM-SS)
can be replaced with a combination of theoutput-format
examples listed above like(MM-YYYY)
{{2monthsago.endof(month).format(YYYY-MM-DD)}}
2
can be replaced with any numeralmonths
can be replaced withdays
orweeks
orquarters
oryears
endof
can be replaced withstartof
month
can be replaced withday
orweek
orquarter
oryear
Example of applying a custom macro in data flow settings
8.Macros custom format examples
Note: In the below examples, assume that today's date and time is August 24th, 2024 at 13:23
Parameter + Macros: | Parameter + Output: |
created_at:{{today.format(dddd)}} |
created_at:Saturday |
created_at:{{5hoursago.format(hh:mm)}} |
created_at:8:23 |
created_at:{{55hoursfromnow.format(YYYY-MM-DD)}} |
created_at:2024-08-24 |
Created_at: 2monthsago.endof(month).format(YYYY-MM-DD) |
Created_at: 2024-06-30 |
9.Where can you use Macros
1.Date & date-time settings of data flow (source settings)
For example:
- Facebook Ads "From", "To" fields
- Mailchimp "Created after date", "Created before date", "Sent since date", "Sent before date" fields
- Shopify "Created after date", "Created before date", "Changed after date", "Changed before date" fields
- WooCommerce "After date", "Before date" fields
- SalesForce "Changed after date", "Changed before date" fields
- Google Analytics 4 "Start date", "End date" fields
- Hubspot "Created after date", "Created before date", "Updated after date", and "Updated before date" fields
- Note: only date macros are available for Hubspot date fields. Date and time macros ( {{hourago}} etc) are unavailable.
- Xero reports "Report Period" field
2.Body/string/query settings of data flow that allow dynamic input (source settings)
For example:
- JSON / CSV URL, URL query string, and Body fields of the JSON or CSV Client data flow.
- Quickbooks "Where" field
- Note: QB requires the use of macro values in single quotes, i.e. '{{today}}'. Please find a more detailed guide for this here.
- Quickbooks reports the "Query parameters" field.
- Xero "Where" field
- Note: special formatting to be used with Xero data flow: check the details here.
- BigQuery "SQL query" field
- JIRA "JQL" field
- Slack "Search query" field
Examples of using macros in the URL Query Parameter and Request body for GET & POST Requests:
- "URL query parameter" field for GET requests
- “Request body" field for POST requests
- To post a message to Slack:
- The output you would see in Slack:
- To post a message to Slack:
3.Sheet name setting (destination settings)
If you need the data flow to send data to a new destination sheet on each run, you may apply a macro in the name of the destination sheet.
Example:
- Setting applied:
- Result: each time the data flow runs, a new destination sheet corresponding to the macro's date will be created:
Please see more on this approach here.