slack-workflow-builder

Use this skill when designing or troubleshooting Slack Workflow Builder workflows that call Salesforce — especially the Salesforce connector step Run a Flow, mapping inputs/outputs, handling failures, and understanding limits. Triggers on: Slack Workflow Builder Salesforce, Run a Flow from Slack, autolaunched flow from Slack, Slack automation calling Salesforce. NOT for Salesforce Flow Builder tutorials unrelated to Slack (use flow skills), not for Flow Core Actions that send Slack messages from Salesforce (use flow-for-slack), not for initial org-to-workspace connection (use slack-salesforce-integration-setup), and not for building custom Slack apps outside Workflow Builder.

Best use case

slack-workflow-builder is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use this skill when designing or troubleshooting Slack Workflow Builder workflows that call Salesforce — especially the Salesforce connector step Run a Flow, mapping inputs/outputs, handling failures, and understanding limits. Triggers on: Slack Workflow Builder Salesforce, Run a Flow from Slack, autolaunched flow from Slack, Slack automation calling Salesforce. NOT for Salesforce Flow Builder tutorials unrelated to Slack (use flow skills), not for Flow Core Actions that send Slack messages from Salesforce (use flow-for-slack), not for initial org-to-workspace connection (use slack-salesforce-integration-setup), and not for building custom Slack apps outside Workflow Builder.

Teams using slack-workflow-builder should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/slack-workflow-builder/SKILL.md --create-dirs "https://raw.githubusercontent.com/PranavNagrecha/AwesomeSalesforceSkills/main/skills/integration/slack-workflow-builder/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/slack-workflow-builder/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How slack-workflow-builder Compares

Feature / Agentslack-workflow-builderStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use this skill when designing or troubleshooting Slack Workflow Builder workflows that call Salesforce — especially the Salesforce connector step Run a Flow, mapping inputs/outputs, handling failures, and understanding limits. Triggers on: Slack Workflow Builder Salesforce, Run a Flow from Slack, autolaunched flow from Slack, Slack automation calling Salesforce. NOT for Salesforce Flow Builder tutorials unrelated to Slack (use flow skills), not for Flow Core Actions that send Slack messages from Salesforce (use flow-for-slack), not for initial org-to-workspace connection (use slack-salesforce-integration-setup), and not for building custom Slack apps outside Workflow Builder.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Slack Workflow Builder

This skill activates when a practitioner builds or debugs **Slack Workflow Builder** automations that touch Salesforce. Slack Workflow Builder is Slack’s native no-code automation surface. When paired with the **Salesforce for Slack** connection, it can run Salesforce-side logic through connector steps such as **Run a Flow**. That path is distinct from **Salesforce Flow** calling Slack (Flow Core Actions), which is covered elsewhere. This document focuses on the Slack-initiated direction, prerequisites, supported Flow types, and the operational limits that affect high-volume notifications.

---

## Before Starting

Gather this context before working on anything in this domain:

- **Org connectivity:** The Slack workspace must already be connected to the correct Salesforce org via the Salesforce for Slack app; Workflow Builder does not replace that handshake. If the workspace cannot see Salesforce steps, fix connection and permissions first (see slack-salesforce-integration-setup).
- **Wrong Flow type is the #1 failure:** The **Run a Flow** step can invoke **active autolaunched flows only**. Screen flows, record-triggered flows, and other interactive process types are not valid targets for that connector step. Practitioners often copy a working record-triggered flow name into Slack and see opaque failures.
- **Volume and async limits:** Salesforce-side automation that posts to Slack from record-triggered flows is subject to **asynchronous** execution rules and org-wide throttles (for example, caps on asynchronous calls over a rolling window). Design for bursts (bulk updates, imports) so Slack is not used as an unbounded fan-out channel.

---

## Core Concepts

### Slack Workflow Builder vs Salesforce Flow

**Slack Workflow Builder** runs inside Slack. Steps can react to messages, emoji, shortcuts, or schedules, then chain Slack actions and third-party connectors. **Salesforce Flow** runs inside Salesforce and can optionally use Slack Core Actions (for example, Send Slack Message). Treat these as opposite directions on the same integration backbone: Workflow Builder pulls Salesforce work **from Slack**; Salesforce Flow pushes Slack updates **from CRM events**.

### Run a Flow (Salesforce connector)

The Salesforce connector’s **Run a Flow** step starts a Salesforce Flow by API name. The invoked automation must be an **autolaunched** flow (no screens, no user interview). Inputs defined in the autolaunched flow appear as parameters in the Slack step; outputs can be mapped into later Slack steps. If the flow is inactive, renamed, or not autolaunched, the workflow run fails at that step.

### Governance and data exposure

Workflows often post to public channels or include form data from users who may not have Salesforce licenses. Any data returned from Salesforce into Slack should be treated as **visible to everyone who can see the channel or DM**. Combine channel policies with least-privilege Flow design (query only what the step needs, avoid dumping sensitive fields into Slack messages).

---

## Common Patterns

### Pattern 1: Slack shortcut runs an autolaunched approval or update Flow

**When to use:** A Slack user triggers a shortcut or button and Salesforce should create or update a record without opening Salesforce.

**How it works:**

1. In Flow Builder, create an **autolaunched** flow with input variables (for example, record Id, decision text) and the desired create/update elements.
2. Activate the flow and note the **API Name**.
3. In Slack Workflow Builder, add the **Run a Flow** (Salesforce) step, pick the org, select the flow, map Slack form fields or trigger payload fields to Flow inputs.
4. Add a follow-up Slack step (message or thread reply) that uses Flow output values for confirmation.

**Why not a screen flow:** Screen flows require a Salesforce UI context. Slack Workflow Builder cannot host that runtime; only autolaunched flows are supported for this connector pattern.

### Pattern 2: Channel signal enriches CRM (lightweight sync)

**When to use:** A message in a deal room should log an activity or flag an opportunity without leaving Slack.

**How it works:**

1. Trigger the workflow on **New message in channel** (or a relevant trigger).
2. Use Slack steps to parse or capture the needed identifiers (thread timestamp, channel metadata, or user input).
3. Call **Run a Flow** with those identifiers as inputs; keep the Flow idempotent where possible (duplicate messages should not create duplicate tasks).

**Why not record-triggered from Slack:** Record-triggered flows start from DML in Salesforce, not from Slack’s connector. If the requirement is CRM-driven, implement in Salesforce Flow instead.

---

## Decision Guidance

| Situation | Recommended Approach | Reason |
|---|---|---|
| Need Salesforce logic from a Slack trigger | Slack Workflow Builder + **Run a Flow** on an **autolaunched** flow | Supported connector path from Slack into Salesforce |
| Need Slack message when Salesforce record changes | Record-triggered (or scheduled) Salesforce Flow + Slack Core Actions | CRM is the system of record for the event |
| Need a user to fill a screen in Salesforce | Screen flow or Experience Cloud / Lightning URL | Screen flows are not invocable from Slack Workflow Builder’s Run a Flow step |
| High-volume record updates must notify Slack | Batch, platform events, or async paths; throttle notifications | Prevents hitting asynchronous limits and flooding channels |

---

## Recommended Workflow

1. Confirm the Slack workspace is connected to the intended Salesforce org and that the practitioner can add Salesforce steps in Workflow Builder; if not, stop and use slack-salesforce-integration-setup.
2. List the exact Salesforce behavior required (read-only vs DML) and identify whether the entry point is Slack-side or Salesforce-side; if Salesforce-side, prefer flow-for-slack or record-triggered patterns instead of Workflow Builder.
3. In Salesforce, implement or locate an **autolaunched** flow with explicit input/output variables; activate it and record the API name.
4. In Slack Workflow Builder, add the **Run a Flow** step, map inputs from the Slack trigger or prior steps, and handle null or error paths with a user-visible Slack message.
5. Test with a single user and a low-traffic channel, then scale-test bulk scenarios (imports, mass edits) if the flow performs DML or callouts.
6. Document channel governance (who can run the shortcut, what data may appear in Slack) and add monitoring for failed workflow runs in Slack’s workflow history.

---

## Review Checklist

Run through these before marking work in this area complete:

- [ ] Target flow is **autolaunched** and **Active**, with API name matching the Slack step
- [ ] Input/output mappings cover null-safe paths and do not leak sensitive fields into public channels
- [ ] Practitioners understand this is **not** the same as Flow Core Actions from Salesforce to Slack
- [ ] Bulk and scheduled scenarios have been considered for limits and noise
- [ ] Error handling in the Slack workflow informs the user when Salesforce returns a fault

---

## Salesforce-Specific Gotchas

1. **Wrong process type** — Selecting a record-triggered or screen flow in **Run a Flow** fails or is blocked. Always create a dedicated autolaunched orchestration flow if reusable logic lives in a record-triggered flow (delegate from autolaunched subflow pattern in Flow documentation).
2. **Inactive or renamed flows** — Slack stores the selection by reference; deployments that deactivate or rename flows break in-flight workflows until the Slack step is re-saved.
3. **Permission context** — The Salesforce operation runs in an integration context governed by the Salesforce for Slack connection and the running user’s or connected app’s permissions (exact behavior per product release). Do not assume the clicking user’s personal Salesforce session applies unless the product explicitly documents that model.

---

## Output Artifacts

| Artifact | Description |
|---|---|
| Workflow definition | Slack Workflow Builder configuration including Salesforce steps and mappings |
| Autolaunched Flow package | Salesforce metadata for the invocable flow (API name, inputs, status) |
| Runbook | Channel governance, test matrix, and failure triage for workflow + Flow changes |

---

## Related Skills

- slack-salesforce-integration-setup — connect org to workspace and resolve connector visibility issues
- flow-for-slack — Salesforce Flow actions that send Slack messages or launch flows from Slack messages
- error-handling-in-integrations — resilient patterns for callouts, retries, and partial failures across systems

Related Skills

customer-data-request-workflow

8
from PranavNagrecha/AwesomeSalesforceSkills

Implement GDPR/CCPA data subject rights (access, deletion, rectification) using Salesforce Privacy Center and/or custom workflow. NOT for general backup or org-level data retention policy.

lwc-app-builder-config

8
from PranavNagrecha/AwesomeSalesforceSkills

Use when an LWC needs to appear, be configured, and be constrained inside Lightning App Builder, Experience Builder, Home Page, or Flow screens via its js-meta.xml file — including isExposed, targets, targetConfigs, supportedFormFactors, objects scoping, and admin-facing design attributes. Triggers: 'lwc not appearing in app builder', 'expose lwc to record page', 'design attribute datasource picklist', 'supportedformfactors mobile small', 'targetconfigs for record page vs app page', 'masterlabel vs description'. NOT for custom property editors for Flow (see `custom-property-editor-for-flow`), and NOT for Experience Cloud theming at the page level.

slack-salesforce-integration-setup

8
from PranavNagrecha/AwesomeSalesforceSkills

Use this skill when setting up or troubleshooting the Salesforce for Slack managed app — including connecting a Salesforce org to a Slack workspace, configuring the three-party admin handshake, linking Slack channels to Salesforce records, enabling record preview sharing, and managing org-level limits. Triggers on: Salesforce for Slack app not connecting, Slack org connection setup, Salesforce record sharing in Slack, Slack workspace admin approval, connecting Salesforce to Slack. NOT for building custom Slack apps or Slack bots (separate development platform), not for Slack Workflow Builder Salesforce connector (use slack-workflow-builder skill), not for Flow-based Slack messaging (use flow-for-slack skill).

slack-connect-patterns

8
from PranavNagrecha/AwesomeSalesforceSkills

Use when designing, governing, or troubleshooting Slack Connect channel sharing between two independent organizations. Trigger phrases: external Slack channel collaboration, cross-org Slack channel setup, Slack Connect DLP policy, Slack partner channel governance, regulated industry Slack Connect compliance. Does NOT cover Salesforce-to-Salesforce integration, Salesforce for Slack app setup, or internal single-workspace Slack channels. NOT for Salesforce-to-Salesforce integration.

workflow-rule-to-flow-migration

8
from PranavNagrecha/AwesomeSalesforceSkills

Migrate Workflow Rules to record-triggered Flows: field update mapping, email alert migration, outbound message alternatives using Flow Core Actions, time-based workflow replacement with Scheduled Paths. NOT for Process Builder migration (use process-builder-to-flow-migration), NOT for building new flows from scratch.

process-builder-to-flow-migration

8
from PranavNagrecha/AwesomeSalesforceSkills

Migrate Process Builder processes to record-triggered Flows using the native Migrate to Flow tool or manual rebuild. Covers conversion tool usage, pattern mapping, order-of-execution changes, testing migrated flows, and bulk behavior improvements. NOT for building new flows from scratch, NOT for Workflow Rule migration (use workflow-rule-to-flow-migration), NOT for net-new automation design.

flow-for-slack

8
from PranavNagrecha/AwesomeSalesforceSkills

Use this skill when using Salesforce Flow Core Actions for Slack to send messages, create/archive channels, add users, check user connectivity, or launch flows from Slack — including prerequisite setup of the Salesforce for Slack managed package and required permission sets. Triggers on: Send Slack Message from Flow, Create Slack Channel action in Flow, Flow Core Actions for Slack not visible, Slack actions missing in Flow Builder, add users to Slack channel from Flow. NOT for Slack Workflow Builder (Slack-native tool that calls autolaunched Flows FROM Slack — use slack-workflow-builder skill), not for Agentforce Slack agent deployment (use agentforce-in-slack skill), not for initial Salesforce-Slack org connection (use slack-salesforce-integration-setup skill).

prompt-builder-templates

8
from PranavNagrecha/AwesomeSalesforceSkills

Use when creating, reviewing, or troubleshooting Prompt Builder templates (Field Generation, Record Summary, Sales Email, or Flex types), including grounding with merge fields, Flow, or Apex. Trigger keywords: prompt template, Prompt Builder, field generation, record summary, sales email template, flex template, grounding, merge fields, LLM template, Einstein generative AI. NOT for agent topic instructions, Copilot action configuration, or Data Cloud segment activation.

model-builder-and-byollm

8
from PranavNagrecha/AwesomeSalesforceSkills

Use when configuring Model Builder in Salesforce to register external LLMs or select standard models for Agentforce and Einstein features. Covers model registration, API key configuration, model aliases, and cost/performance tradeoffs. NOT for Trust Layer configuration (use agentforce-trust-layer).

einstein-prediction-builder

8
from PranavNagrecha/AwesomeSalesforceSkills

Einstein Prediction Builder for creating custom binary classification predictions on Salesforce objects: field selection, training data requirements, model activation, score embedding, and monitoring. NOT for Einstein Discovery (Tableau CRM Analytics) or Agentforce agent creation.

agentforce-in-slack

8
from PranavNagrecha/AwesomeSalesforceSkills

Use when configuring Slack-specific Agentforce capabilities AFTER the basic Slack deployment is complete: enabling Slack-native actions, managing public vs. private action scope, mapping Salesforce-to-Slack user identity, or troubleshooting Slack action failures. Triggers: 'add General Slack Actions topic to agent', 'configure canvas creation for Agentforce in Slack', 'Agentforce private action requires user identity mapping', 'Slack agent cannot send DMs after deployment', 'Agentforce Look Up User action not working in Slack', 'how to map Slack users to Salesforce identities for private actions'. NOT for core Agentforce setup, NOT for basic Slack OAuth installation or DM vs channel-mention mode — those are covered by agentforce/agent-channel-deployment.

lightning-app-builder-advanced

8
from PranavNagrecha/AwesomeSalesforceSkills

Advanced Lightning App Builder usage: component visibility filters, custom page templates, Dynamic Forms, Dynamic Actions, page performance optimization, LWC targetConfig for record pages. Use when building complex record pages or custom app templates. NOT for basic page layout configuration. NOT for LWC component development (use lwc/* skills). NOT for Dynamic Forms basics (use dynamic-forms-and-actions).