Portal Community

1. Post a deployment notification

Send a formatted message to a channel when a CI pipeline finishes.

{
  "resource": "message",
  "operation": "send",
  "credentialID": 12,
  "channel": "#deployments",
  "text": "*Deploy succeeded* :rocket: — build #482 is live on production.",
  "iconEmoji": ":rocket:"
}

2. Create a channel per new project, then invite the team

// Step 1 — create
{
  "resource": "channel",
  "operation": "create",
  "credentialID": 12,
  "name": "proj-atlas",
  "isPrivate": true
}

// Step 2 — invite (channelId from Step 1's output)
{
  "resource": "channel",
  "operation": "invite",
  "credentialID": 12,
  "channelId": "{{step1.output.channelId}}",
  "userIds": "U01ABCDE,U02FGHIJ,U03KLMNO"
}

3. Acknowledge a support request with a reaction, then reply in-thread

// Step 1 — react
{
  "resource": "reaction",
  "operation": "add",
  "credentialID": 12,
  "channel": "C0123456789",
  "messageTs": "{{trigger.messageTs}}",
  "emojiName": "eyes"
}

// Step 2 — reply in thread
{
  "resource": "message",
  "operation": "send",
  "credentialID": 12,
  "channel": "C0123456789",
  "threadTs": "{{trigger.messageTs}}",
  "text": "Thanks for reporting this — looking into it now."
}

4. Share a generated report file

{
  "resource": "file",
  "operation": "upload",
  "credentialID": 12,
  "fileName": "weekly-report.pdf",
  "fileContentBase64": "{{previousStep.output.pdfBase64}}",
  "channelId": "#reports",
  "title": "Weekly Report — Week 30"
}

5. Look up an approver's presence before pinging them

// Step 1 — check presence
{
  "resource": "user",
  "operation": "getStatus",
  "credentialID": 12,
  "userId": "U04APPROVER"
}

// Step 2 — DM only if active (condition node between steps checks the output)
{
  "resource": "channel",
  "operation": "open",
  "credentialID": 12,
  "userIds": "U04APPROVER"
}

6. Ephemeral confirmation after a slash-command-triggered action

{
  "resource": "message",
  "operation": "send",
  "credentialID": 12,
  "channel": "C0123456789",
  "ephemeral": true,
  "targetUserId": "U0REQUESTER",
  "text": "Your request has been submitted for approval."
}

7. Sync a Slack user group from an external roster

{
  "resource": "userGroup",
  "operation": "addUsers",
  "credentialID": 12,
  "userGroupId": "S0123456",
  "userIds": "U01ABCDE,U02FGHIJ,U03KLMNO"
}
Remember: userGroup/addUsers replaces the entire membership list — build the full comma-separated userIds string from your source of truth before calling it, not just the users you want to add.