Salesforce Flow · Capability

Salesforce Flow Automation

Unified workflow capability for managing and executing Salesforce Flow automation processes. Combines flow definition management, interview execution, and invocable action triggering for business process automation teams.

Run with Naftiko SalesforceFlowAutomationWorkflowBusiness ProcessCRM

What You Can Do

GET
List flows — List all Flow definitions in the org
/v1/flows
GET
Get flow — Get a specific Flow definition
/v1/flows/{flowId}
PATCH
Update flow — Update a Flow definition
/v1/flows/{flowId}
POST
Create flow interview — Start a new Flow Interview
/v1/interviews
GET
Get flow interview — Get current Flow Interview state
/v1/interviews/{interviewId}
DELETE
Delete flow interview — Delete a Flow Interview
/v1/interviews/{interviewId}
GET
List invocable flows — List all invocable flow actions
/v1/invocable-flows
GET
Get invocable flow metadata — Get invocable flow input/output schema
/v1/invocable-flows/{flowApiName}
POST
Invoke flow — Execute a flow action
/v1/invocable-flows/{flowApiName}

MCP Tools

list-flows

List all Flow definitions in the Salesforce org

read-only idempotent
get-flow

Get details for a specific Flow definition by ID

read-only idempotent
update-flow

Update a Flow definition's status or description

idempotent
start-flow-interview

Create and start a new Flow Interview instance with input variables

get-flow-interview-status

Get the current state and output variables of a running Flow Interview

read-only idempotent
delete-flow-interview

Delete a paused or stale Flow Interview

idempotent
list-invocable-flows

List all Flows exposed as invocable actions

read-only idempotent
get-invocable-flow-schema

Get input and output variable schema for an invocable flow

read-only idempotent
invoke-flow

Execute a Salesforce Flow as an invocable action with specified input variables

query-flows

Query Flow records using SOQL for advanced filtering

read-only idempotent

APIs Used

salesforce-flow

Capability Spec

flow-automation.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Salesforce Flow Automation"
  description: >-
    Unified workflow capability for managing and executing Salesforce Flow
    automation processes. Combines flow definition management, interview
    execution, and invocable action triggering for business process
    automation teams.
  tags:
    - Salesforce
    - Flow
    - Automation
    - Workflow
    - Business Process
    - CRM
  created: "2026-05-02"
  modified: "2026-05-02"

binds:
  - namespace: env
    keys:
      SALESFORCE_ACCESS_TOKEN: SALESFORCE_ACCESS_TOKEN

capability:
  consumes:
    - import: salesforce-flow
      location: ./shared/flow-rest-api.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: flow-automation-api
      description: "Unified REST API for Salesforce Flow automation management."
      resources:
        - path: /v1/flows
          name: flows
          description: "Flow definition management"
          operations:
            - method: GET
              name: list-flows
              description: "List all Flow definitions in the org"
              call: "salesforce-flow.list-flows"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/flows/{flowId}
          name: flow
          description: "Individual flow operations"
          operations:
            - method: GET
              name: get-flow
              description: "Get a specific Flow definition"
              call: "salesforce-flow.get-flow"
              with:
                flowId: "rest.flowId"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: PATCH
              name: update-flow
              description: "Update a Flow definition"
              call: "salesforce-flow.update-flow"
              with:
                flowId: "rest.flowId"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/interviews
          name: interviews
          description: "Flow interview (execution instance) management"
          operations:
            - method: POST
              name: create-flow-interview
              description: "Start a new Flow Interview"
              call: "salesforce-flow.create-flow-interview"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/interviews/{interviewId}
          name: interview
          description: "Individual interview operations"
          operations:
            - method: GET
              name: get-flow-interview
              description: "Get current Flow Interview state"
              call: "salesforce-flow.get-flow-interview"
              with:
                interviewId: "rest.interviewId"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: DELETE
              name: delete-flow-interview
              description: "Delete a Flow Interview"
              call: "salesforce-flow.delete-flow-interview"
              with:
                interviewId: "rest.interviewId"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/invocable-flows
          name: invocable-flows
          description: "Invocable flow action catalog"
          operations:
            - method: GET
              name: list-invocable-flows
              description: "List all invocable flow actions"
              call: "salesforce-flow.list-invocable-flows"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/invocable-flows/{flowApiName}
          name: invocable-flow
          description: "Execute specific invocable flows"
          operations:
            - method: GET
              name: get-invocable-flow-metadata
              description: "Get invocable flow input/output schema"
              call: "salesforce-flow.get-invocable-flow-metadata"
              with:
                flowApiName: "rest.flowApiName"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: invoke-flow
              description: "Execute a flow action"
              call: "salesforce-flow.invoke-flow"
              with:
                flowApiName: "rest.flowApiName"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9090
      namespace: flow-automation-mcp
      transport: http
      description: "MCP server for AI-assisted Salesforce Flow automation management."
      tools:
        - name: list-flows
          description: "List all Flow definitions in the Salesforce org"
          hints:
            readOnly: true
            idempotent: true
            openWorld: true
          call: "salesforce-flow.list-flows"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-flow
          description: "Get details for a specific Flow definition by ID"
          hints:
            readOnly: true
            idempotent: true
          call: "salesforce-flow.get-flow"
          with:
            flowId: "tools.flowId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: update-flow
          description: "Update a Flow definition's status or description"
          hints:
            readOnly: false
            idempotent: true
          call: "salesforce-flow.update-flow"
          with:
            flowId: "tools.flowId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: start-flow-interview
          description: "Create and start a new Flow Interview instance with input variables"
          hints:
            readOnly: false
            destructive: false
          call: "salesforce-flow.create-flow-interview"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-flow-interview-status
          description: "Get the current state and output variables of a running Flow Interview"
          hints:
            readOnly: true
            idempotent: true
          call: "salesforce-flow.get-flow-interview"
          with:
            interviewId: "tools.interviewId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: delete-flow-interview
          description: "Delete a paused or stale Flow Interview"
          hints:
            readOnly: false
            destructive: true
            idempotent: true
          call: "salesforce-flow.delete-flow-interview"
          with:
            interviewId: "tools.interviewId"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-invocable-flows
          description: "List all Flows exposed as invocable actions"
          hints:
            readOnly: true
            idempotent: true
            openWorld: true
          call: "salesforce-flow.list-invocable-flows"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-invocable-flow-schema
          description: "Get input and output variable schema for an invocable flow"
          hints:
            readOnly: true
            idempotent: true
          call: "salesforce-flow.get-invocable-flow-metadata"
          with:
            flowApiName: "tools.flowApiName"
          outputParameters:
            - type: object
              mapping: "$."
        - name: invoke-flow
          description: "Execute a Salesforce Flow as an invocable action with specified input variables"
          hints:
            readOnly: false
            destructive: false
          call: "salesforce-flow.invoke-flow"
          with:
            flowApiName: "tools.flowApiName"
          outputParameters:
            - type: object
              mapping: "$."
        - name: query-flows
          description: "Query Flow records using SOQL for advanced filtering"
          hints:
            readOnly: true
            idempotent: true
          call: "salesforce-flow.query-flows"
          with:
            q: "tools.q"
          outputParameters:
            - type: object
              mapping: "$."