Macro substitution lets you insert variables into an app during runtime execution, where ${variable} will be replaced with the actual value of the variable.

Let’s first look at some common cases that illustrate the use of macros.

Example: Set a custom channel name
channel_name: "_bug-report_${YYYY}-${MM}-${DD}-${title}"

If somebody reports “Database error” on November 15, the channel name of the bug report will be “_bug-report_2020-11-15-database_error”. Conclude automatically translates space and other illegal channel name letters to underscore.

Example: Invite the initiator
members: "#requests ${initiator}"

This will invite the initiator (the person who submitted a request for approval) to become a member of the activity channel. This technique is used by the ‘approval’ blueprint.

Example: Set a default attribute value
  - name: conclusion
    type: text
    label: Resolution
    default_value: "${bug_status.label}"
    placeholder: What was the resolution?

The ‘bug-report’ blueprint sets the resolution (conclusion) text to the value of the bug_status select dropdown.


Macro substitution is context sensitive

Macro expansion knows the context, and the substituted value depends on the context in which the macro is used.

For example, ${initiator} will expand to different values depending on the context:

  • As a Slack alert or message: converted to a Slack user reference.
  • In the To/Cc: of an email: The email address of the initiator.
  • In the body text of an email: The full name of the initiator.

Role-based macros

Variable Description
${initiator} The user who created the activity.
${owner} The owner of the activity.
${members} The members of the activity.
${admins} The admins of the app.
${superusers} The superusers of the app.

Attribute macros

Variable Description
${attribute} Expands to the attribute value. Examples:e ${title} or ${conclusion}
${attribute.label} Expands to the label of a select attribute. Example ${severity.label}

Date and time macros

Variable Description
${YYYY} The current year (4 digits).
${YY} The current year (2 digits).
${MM} The current month (01..12).
${DD} The current date (00..31).
${hh} The current hour (00..23).
${mm} The current minute (00..59).
${ss} The current second (00..59).

Activity ID, URL etc.

Variable Description
${ID} The activity ID, for example i3Ht7b89.
${SHORT_URL} The short URL of the activity, for example https://conclude.app/id/i3Ht7b89
${URL} The URL of the activity, e.g. https://conclude.app/id/A-52aoz-521oz-4gtoz
${channel} The activity channel, for example #_incident-38

Supercharge your team!

Bridge the collaboration gap with Conclude apps.

Quickstart