Summary
The Slack integration sends alert messages from iPaaS.com to a designated member in a Slack workspace through the Add Slack Message FROM iPaaS.com mapping collection. It is designed for automated error alerting: when an iPaaS.com transaction errors and does not resolve itself after repeated attempts, a formatted message is delivered to Slack so the condition can be reviewed promptly.
ID Format
Manual Sync ID: the iPaaS.com message record ID, entered on the iPaaS.com Manual Sync page. Example: 288.
External ID (saved after delivery): after a message is delivered, Slack returns a block identifier that iPaaS.com records as the external ID for the transfer. Example: b1.
Deleted Record Support
Outbound delete is not supported. Removing a record on the iPaaS.com side does not remove a message that has already been delivered to Slack, and delete mappings are not included in the default template.
Mapping Collection Status
Enabled. A mapping filter is applied so that only unresolved error alerts are sent (see Mappings below). Records that do not meet the filter conditions are skipped.
Duplicate or Conflicting Mappings
There is a single Slack mapping collection, so there are no conflicting collections operating on the same data. Collision handling is not supported for this collection.
Supported Child Collections
This collection has no child collections.
System Caveats
Slack Caveats
Message length: Slack limits an individual message block to 3,000 characters and a single message to 4,000 characters total. Long alert bodies are automatically shortened and split into blocks before delivery, and a follow-up notice is appended when truncation occurs.
Recipient must exist: the Slack member named in the Channel mapping must exist in the connected workspace. If no member matches the supplied profile name, the alert is not delivered to a recipient.
Channel vs. member, and private channels: the Channel mapping can target an individual member (resolved from a profile name) or a channel (by returning the channel name directly, for example
return "#chris-private";). To deliver to a private channel, the Slack application must first be added to that channel, or the send fails with a channel-not-found error.Workspace permissions: the Slack application authorized for the subscription must hold the permissions required to read the member list and post messages.
iPaaS.com Caveats
Alerts are produced from iPaaS.com error records. A message is eligible for delivery only after it carries an ExternalSystemId and its RetryCount has reached 3.
Setup Requirements
A Slack workspace with a Slack application authorized for the subscription (see the Slack Connections and Settings and Slack Installation Instructions articles).
Application permissions sufficient to read the workspace member list and to post messages.
The member who should receive alerts must exist in the workspace, and that member's profile name must be set in the Channel mapping.
Integration Flow
Error event: an error is recorded in iPaaS.com. Only messages that carry an ExternalSystemId and have reached a RetryCount of 3 are eligible for delivery.
Delivery trigger: an eligible message is dispatched automatically through the subscription's outbound triggers (configured under Outbound Data Flows), or on demand through Manual Sync.
Recipient resolution: the integration resolves the target Slack member by matching the supplied profile name against the member's Name first and then their Real Name.
Message preparation: the alert body is built and formatted. If it exceeds the supported length, it is shortened and split into blocks, and a follow-up notice is appended.
Delivery: the formatted message is posted to Slack, and Slack confirms delivery or returns an error that is recorded in the iPaaS.com error log.
Mappings
Add Slack Message FROM iPaaS.com
Mapping Filter
if(DetailFields == null || DetailFields.ContainsKey("ExternalSystemId"))
{
if(!DetailFields.ContainsKey("RetryCount"))
return false;
var retryCountStr = DetailFields["RetryCount"];
if(int.TryParse(retryCountStr, out int retryCount))
return (retryCount == 3);
return false;
}
else
return false;This filter only allows a message through when it originated from an error (it carries an ExternalSystemId) and that error has reached a RetryCount of 3, meaning it did not resolve itself on earlier attempts. Messages without an ExternalSystemId, or whose RetryCount has not reached 3, are skipped.
Field Mappings
Mapping Type | Source Field (iPaaS.com) | Destination Field (Slack) | Description |
Dynamic Formula | await UserIdFromName("your_slack_user_name_here") | Channel | Required. Resolves the recipient by looking up the Slack member whose profile name is supplied, checking Name first and then Real Name. Placeholder value — replace during implementation: your_slack_user_name_here is an example name; set it to the member who should receive alerts. |
Dynamic Formula | if(Details.Length > 3500) Details = Details.Substring(0, 3500); StandardMessage(Text, Details, DetailFields, Links) | Text | Required. Builds the formatted alert body and shortens it when it is too long for Slack to deliver (Slack allows up to 4,000 characters per message). |
Static | ... (the remainder of the error message has been truncated per Slack's character limits) | FollowUpMessage | Optional. A notice appended to the alert when a long message is split across blocks, so the recipient knows the content was truncated. |
Error Handling
Recipient not found: the supplied profile name does not match a member in the workspace, so the alert is delivered to no recipient. Confirm the member exists and the name matches their Name or Real Name.
Authorization could not be completed: the Slack connection is not authorized. Restart the authorization from the subscription settings.
For the full list of subscriber-facing errors and resolutions, see the Slack Error Messages article. Errors are viewed under Dashboard → Integration Monitoring → Error Logs.
