Overview
The Slack integration provides a set of ready-made functions you can call when building mappings. They help you build well-formatted Slack alert messages, with detail fields, action links, and clean text, and look up a Slack user by name, so you do not have to write that logic yourself in a formula.
Where you can use these functions
These functions are available anywhere you write a formula for the Slack integration:
Dynamic Formula mappings: where a destination field's value is produced by a formula rather than mapped directly from a source field.
Mapping collection filters: where a formula decides whether a record should be processed.
Error filters: a mapping collection's error filter, which sits alongside its collection filter. When the error filter's formula resolves to true, the transfer raises an error that is held in the Error Logs for review and is not retried automatically.
Translation collections: where a translation entry uses a formula as its source value.
How to use them
Call a function by name and pass the values it needs in parentheses, for example:
await UserIdFromName(SourceName).Each function's signature shows its name, the parameters it accepts (with their types), and the type of value it returns. Use it as the reference for exactly how to call the function.
Function names and formula syntax are case-sensitive, so type each name exactly as shown. Whether the values a function matches are treated as case-sensitive varies by function, and is called out in the relevant parameter's description.
Some of these functions are asynchronous (their signature returns a
Task) and must be called withawait; the rest are synchronous and are called directly. Each function's How to call it example shows the correct form.Each function runs at sync time, against the data in your connected Slack account and your iPaaS.com subscription.
The functions are grouped below by the area of the integration they support.
Alert Messages
StandardMessage
What it does: Builds a standardized Slack alert message from an alert headline, a details block, a set of detail fields, and a set of action links. It keeps the message within Slack's length limit by stripping HTML and truncating the details when needed, and cleans characters that would break Slack formatting.
Signature: string StandardMessage(string text, string details, Dictionary<string, string> detailFields, Dictionary<string, string> links)
How to call it: StandardMessage(text, details, detailFields, links)
Parameter | Type | Required | Default | Description |
|
| Yes | N/A | The main alert headline shown at the top of the message. |
|
| Yes | N/A | The additional details block. It is stripped of HTML and truncated if the message would exceed Slack's length limit. |
|
| Yes | N/A | The detail fields to show below the headline. The recognized keys are |
|
| Yes | N/A | The action links to show at the bottom. The recognized keys are |
Returns: string. A single formatted string ready to post to Slack.
Example: StandardMessage("Error processing order", "Stacktrace and details...", detailFields, links) returns a Slack-ready alert with the headline, detail fields, cleaned details, and action links.
When to use it: Use this to produce a consistent, Slack-safe alert message in a notification mapping.
StandardMessage_DetailFields
What it does: Builds the detail-fields line for a Slack alert from a set of fields. It includes the Scope, External Id, and System Id values when present.
Signature: string StandardMessage_DetailFields(Dictionary<string, string> detailFields)
How to call it: StandardMessage_DetailFields(detailFields)
Parameter | Type | Required | Default | Description |
|
| Yes | N/A | The detail fields to include. The recognized keys are |
Returns: string. The formatted detail-fields line, or an empty string when no fields are supplied.
Example: A dictionary with Scope of Order and ExternalId of 1234 returns a line such as *Scope*: Order *External Id*: 1234.
When to use it: Use this when you want just the detail-fields line, for example to build a Slack message layout yourself rather than using StandardMessage.
StandardMessage_Links
What it does: Builds the action-links line for a Slack alert, turning a set of named URLs into clickable Slack links with icons.
Signature: string StandardMessage_Links(Dictionary<string, string> links)
How to call it: StandardMessage_Links(links)
Parameter | Type | Required | Default | Description |
|
| Yes | N/A | The action links to include. The recognized keys are |
Returns: string. The formatted action-links line, or an empty string when no recognized links are supplied.
Example: A dictionary with Retry and Debug URLs returns a line of clickable Slack links for those actions.
When to use it: Use this when you want just the action-links line, for example to append quick actions to a Slack message you build yourself.
StripTagsCharArray
What it does: Removes HTML tags from a string and returns only the visible text, dropping any characters between < and >.
Signature: string StripTagsCharArray(string source)
How to call it: StripTagsCharArray(source)
Parameter | Type | Required | Default | Description |
|
| Yes | N/A | The text that may contain HTML markup. |
Returns: string. The text with all HTML tags removed.
Example: "<p>Hello <strong>World</strong></p>" returns "Hello World".
When to use it: Use this to clean HTML out of a value before placing it in a Slack message, so tags do not break the formatting.
Users
UserIdFromName
What it does: Looks up a Slack member by name and returns that member's Slack user ID. It matches the member's name first, then falls back to the member's real name.
Signature: Task<string> UserIdFromName(string profileName)
How to call it: await UserIdFromName(profileName)
Parameter | Type | Required | Default | Description |
|
| Yes | N/A | The Slack member name (or real name) to match. Matching is case-insensitive, so any casing works: |
Returns: string. The Slack user ID, or null if no member matches.
Example: "john.doe" returns the Slack user ID for the member whose name is john.doe.
When to use it: Use this in notification or routing logic that needs a Slack user ID and has only the member's name.
