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

VariableDescription
${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

VariableDescription
${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

VariableDescription
${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.

VariableDescription
${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