Skip to main content
Server path: /pinkfish-sidekick | Type: Embedded | PCID required: No

Tools

ToolDescription
workflow_createCreate a new workflow automation. Returns automationId and starterCode. Use only when no automationId exists in context (headless/API scenarios). If automationId already exists, use workflow_update directly instead.
workflow_updateUpdate workflow code only. Use code-edit format showing ONLY the sections being changed. Include 2-3 lines of actual unchanged code BEFORE and AFTER your changes for context, then use // … existing code … as placeholder to skip larger unchanged sections. If you added or changed WORKFLOW_RESOURCES, call workflow_bind_resources next, then verify with workflow_read({ automationId, checkResources: true }) before the first workflow_run.
workflow_bind_resourcesApply resource bindings for an existing workflow. Use this after workflow_update whenever you add, repair, or change WORKFLOW_RESOURCES bindings. Supported binding types include connection, collection, trigger, and agent. After binding, verify with workflow_read({ automationId, checkResources: true }) before the first workflow_run. Example: workflow_bind_resources({ automationId: ”…”, bindings: { salesConn: { id: “pcid_123”, resourceType: “connection” } } }). The bindings parameter is REQUIRED — you must provide at least one binding.
workflow_editDEPRECATED — Use workflow_manual_edit instead.
FOR FRONTEND USE ONLY - Agents should use workflow_update instead.
Legacy surgical workflow edits using parse→regenerate. Replaced by workflow_manual_edit which uses LLM+FastApply for more robust editing. Surgical workflow edits for frontend UI operations:
  • Adding/removing nodes from the UI palette
  • Rearranging edges via drag-drop
  • Rebinding resources (changing connections)
For MCP tool nodes: adds node + edge (no function needed). For code-block nodes: generates placeholder function automatically. Uses optimistic locking (expectedVersion) to detect conflicts when multiple users edit simultaneously. | | workflow_manual_edit | FOR FRONTEND USE ONLY - Agents should use workflow_update instead. LLM-powered workflow edits for frontend UI operations. Replaces workflow_edit with a more robust approach:
  • Accepts the same structured operations (addNodes, removeNodes, updateNodes, addEdges, removeEdges)
  • Uses an LLM to generate targeted code edits with FastApply merge
  • Eliminates fragile code parsing/regeneration
For MCP tool nodes: adds node + edge + generates function automatically. For code-block nodes: generates placeholder function automatically. Uses optimistic locking (expectedVersion) to detect conflicts when multiple users edit simultaneously. | | workflow_read | Get workflow structure and optionally focused details for a specific node. IMPORTANT: Only include parameters you actually need. Do NOT pass empty strings, empty arrays, or false for optional parameters — omit them entirely. For example, to check resources, send ONLY: { automationId: ”…”, checkResources: true } Choose one primary read mode:
  • Use only automationId for a lightweight structure read
  • Add exactly one focused mode (nodeId, nodeIds, search, addBetween, or includeCode) when you need targeted details
  • Add checkResources: true only when verifying bindings or resource health
Default response (lightweight):
  • nodes: List of {id, name, type} for all nodes
  • edges: Connection graph
  • resources: List of declared resource names
With nodeId (focused read for modifying a node):
  • focus.node: Node details (see below for what’s returned based on node type)
  • focus.neighbors: Before/after nodes with their schemas
  • focus.availableData: All upstream node outputs (field names)
  • focus.globals: Inputs, resources, context variables (@workflow., @user., etc.)
Node types in focused read:
  • code-block/mcp-tool nodes: Returns code, inputSchema, outputSchema
  • Control flow nodes (router, merge, for-each, if-else, loop, while, parallel, try-catch, delay, race, sub-workflow): Returns full node properties (expression, routes, sources, body, etc.) - NO code since these are runtime primitives
  • trigger nodes: Returns full node properties including outputSchema
With nodeIds (multi-node read):
  • focusedNodes: Map of nodeId to {code, inputSchema, outputSchema} for each requested node
With search (grep across code):
  • matches: Array of {nodeId, line, match, context} for each matching line
  • totalMatches: Total count
With addBetween (for inserting a new node):
  • insertionPoint: Context for where to add the node
With includeCode (full dump — prefer search or nodeIds for targeted reads):
  • code: Full workflow code (WARNING: can be very large for complex workflows)
With checkResources (for binding):
  • resources: Detailed binding status for each resource | | workflow_run | Execute workflow and return results. Runs entire workflow by default. Use runUntilNode to stop after a specific node completes. Long-running workflows are automatically handled by the async execution system. | | workflow_pin | Pin or unpin node outputs to reuse across workflow runs. Pinned nodes skip execution and use stored output from a previous run. Use this to avoid re-running expensive operations (LLM calls, API requests) during development. | | workflow_run_status | Check the status of a workflow run and wait for completion. Automatically polls until the workflow completes or the async execution system handles long-running operations. Returns full results when complete. | | workflow_set_inputs | Set default/test input values for workflows. Values are used when running via workflow_run (dev/test runs) and optionally merged with trigger-provided values at runtime when useAsGlobals is true. Use this to define test data that matches your trigger type — for example, simulated email fields for email triggers, custom values for schedule triggers, or form field values for API/interface triggers. For input schemas (form field definitions), use the trigger tools (workflow_trigger_api or workflow_trigger_interface) instead. | | mcp_discover | Find MCP servers and tools for any task. Covers external integrations (gmail, slack, zendesk, salesforce) AND embedded capabilities (datastore, llm, ocr, web-application, summarization, translation, web scraping). Returns tool specifications along with IDs needed to use them when relevant. | | capabilities_discover | Discover available capabilities for a task. Returns lightweight recommendations for tools, agent skills, connections, and/or resources. Call capability_details to get full details for selected items. Use the “types” parameter to filter by capability type. | | capability_details | Get full details for selected capabilities. For tools: returns inputSchema (full JSON Schema with nested objects, arrays, enums, and required fields), outputSchema, isDynamic (true for dynamic MCP servers), and any matching agent skill content. For agent skills: returns full knowledge content. For connections: returns connection metadata. For resources: returns collection details. Use the “types” parameter to filter by capability type. For custom integrations, when capabilities_discover returns a tool name like “myintegration_c_request”, pass ONLY that exact tool name to capability_details (not the integration name or skill name). The response automatically includes all associated content including skill instructions. | | workflow_results | Deep inspection of workflow run output files. Use after workflow_run to verify output correctness or inspect data. Operations: “list” (artifact summaries with structure/preview/tips — use first to see which files exist, including HTML/UI artifacts), “search” (regex across files), “read” (extract data with path/sample/pagination/fields), “getUrl” (get signed URL for a specific file to download or pass to another tool). For full execution logs (pf.log.* output), use read with filename: “stdout.txt” — returns JSON with a log field. | | workflow_release_diff | Compare current draft code against the latest published release. Returns a unified diff showing what changed, per-step breakdown, and summary statistics (lines added/removed/changed). Use this to understand what code was running in production vs what has been modified since. | | workflow_trigger_schedule | Create, manage, and list schedule triggers that automatically start workflows on a cron schedule. Actions: create, get, update, delete, list, enable, disable. Pass resourceName to auto-bind on create. VERSION CONTROL: useDraft=true for development (default), useDraft=false + release=N for production. | | workflow_trigger_api | Create, manage, and list API (webhook) triggers that provide an HTTP endpoint to start workflows. Actions: create, get, update, delete, list, enable, disable. Pass resourceName to auto-bind on create. For API and Interface triggers, use inputSchema to define form fields (see workflow-trigger-schema skill for details). VERSION CONTROL: useDraft=true for development (default), useDraft=false + release=N for production. | | workflow_trigger_email | Create, manage, and list email triggers that start workflows when emails are received. Actions: create, get, update, delete, list, enable, disable. Pass resourceName to auto-bind on create. VERSION CONTROL: useDraft=true for development (default), useDraft=false + release=N for production. | | workflow_trigger_application | Create, manage, and list application triggers (GitHub, Shopify, etc.) that start workflows on app events. Actions: create, get, update, delete, list, enable, disable. Pass resourceName to auto-bind on create. VERSION CONTROL: useDraft=true for development (default), useDraft=false + release=N for production. | | workflow_trigger_interface | Create, manage, and list interface triggers (user-facing forms generated from a workflow’s inputSchema). Actions: create, get, update, delete, list, enable, disable. Pass resourceName to auto-bind on create. VERSION CONTROL: useDraft=true for development (default), useDraft=false + release=N for production. | | workflow_trigger_replace | Replace an existing trigger in one call: reads old trigger, creates replacement with carried-forward fields, then deletes old trigger. Use this for switch/replace operations to avoid dropping required properties. Pass resourceName to auto-bind the new trigger after creation. | | workflow_trigger_list_all | List triggers across all trigger types. When automationId is provided, returns only triggers for that workflow. When omitted, returns all triggers across all workflows. | | workflow_trigger_cleanup | Delete unused triggers for an automation. Unused = trigger exists but is not bound to any resource in WORKFLOW_RESOURCES. Call this after creating replacement triggers to clean up orphaned triggers. Returns list of deleted triggers, kept triggers, and failed triggers (with error details if any could not be deleted). | | workflow_agents | Create, read, update, list, and invoke agents for use in workflows. Agents can be bound to workflows via workflow_bind_resources and called via pf.agents.get() and pf.agents.call(). ACTIONS: create (new agent), read (get details), update (modify), list (all agents), invoke (call agent). FOR CREATE/UPDATE WITH SERVERS: Call mcp_discover first to see available MCP servers and tools. | | workflow_invoke | Invoke/call/execute another workflow (sub-workflow) using its webhook trigger URL. Use this when a workflow needs to call or trigger another workflow. Automatically executes async and polls for results (up to 14 minutes). Get the webhookEndpoint URL from the trigger sub-agent or workflow_trigger_* tools. | | workflow_list | List all workflows accessible to the user. Returns workflows that have API triggers configured, including their automation ID, name, and trigger details. Use this to discover existing workflows that can be invoked as sub-workflows. |

workflow_create

Create a new workflow automation. Returns automationId and starterCode. Use only when no automationId exists in context (headless/API scenarios). If automationId already exists, use workflow_update directly instead. Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringNoIf provided, initializes this existing automation with starter code. Usually omitted to create a new automation.
namestringYesDisplay name for the workflow (e.g., “Email Processor”, “Data Sync”). Required.
descriptionstringNoBrief description of what the workflow does.

workflow_update

Update workflow code only. Use code-edit format showing ONLY the sections being changed. Include 2-3 lines of actual unchanged code BEFORE and AFTER your changes for context, then use // … existing code … as placeholder to skip larger unchanged sections. If you added or changed WORKFLOW_RESOURCES, call workflow_bind_resources next, then verify with workflow_read({ automationId, checkResources: true }) before the first workflow_run. Parameters:
ParameterTypeRequiredDefaultDescription
spaanyYes
_defanyYes
parseanyYes
safeParseanyYes
parseAsyncanyYes
safeParseAsyncanyYes
refineanyYes
refinementanyYes
superRefineanyYes
optionalanyYes
nullableanyYes
nullishanyYes
arrayanyYes
promiseanyYes
oranyYes
andanyYes
transformanyYes
brandanyYes
defaultanyYes
catchanyYes
describeanyYes
pipeanyYes
readonlyanyYes
isNullableanyYes
isOptionalanyYes
~standardanyYes
_cachedanyYes
nonstrictanyYes
augmentanyYes

workflow_bind_resources

Apply resource bindings for an existing workflow. Use this after workflow_update whenever you add, repair, or change WORKFLOW_RESOURCES bindings. Supported binding types include connection, collection, trigger, and agent. After binding, verify with workflow_read({ automationId, checkResources: true }) before the first workflow_run. Example: workflow_bind_resources({ automationId: ”…”, bindings: { salesConn: { id: “pcid_123”, resourceType: “connection” } } }). The bindings parameter is REQUIRED — you must provide at least one binding. Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringYesAutomation ID
bindingsanyYesResource bindings: map logical names to { id, resourceType }. Supported binding types include connection, collection, trigger, and agent. Example: { “mySlack”: { “id”: “conn-123”, “resourceType”: “connection” }, “apiEntry”: { “id”: “trigger-789”, “resourceType”: “trigger” }, “analyst”: { “id”: “agent-456”, “resourceType”: “agent” } }

workflow_edit

DEPRECATED — Use workflow_manual_edit instead. FOR FRONTEND USE ONLY - Agents should use workflow_update instead. Legacy surgical workflow edits using parse→regenerate. Replaced by workflow_manual_edit which uses LLM+FastApply for more robust editing. Surgical workflow edits for frontend UI operations:
  • Adding/removing nodes from the UI palette
  • Rearranging edges via drag-drop
  • Rebinding resources (changing connections)
For MCP tool nodes: adds node + edge (no function needed). For code-block nodes: generates placeholder function automatically. Uses optimistic locking (expectedVersion) to detect conflicts when multiple users edit simultaneously. Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringYesAutomation ID to edit
expectedVersionnumberNoExpected automation version (from last read). If provided, fails if version changed.
addNodesanyNoNodes to add
removeNodesstring[]NoNode IDs to remove (also removes edges and functions)
updateNodesobject[]NoNodes to update
addEdgesobject[]NoEdges to add
removeEdgesobject[]NoEdges to remove
updateFunctionsobject[]NoNode functions to update
updateResourcesanyNoResources to update or rebind

workflow_manual_edit

FOR FRONTEND USE ONLY - Agents should use workflow_update instead. LLM-powered workflow edits for frontend UI operations. Replaces workflow_edit with a more robust approach:
  • Accepts the same structured operations (addNodes, removeNodes, updateNodes, addEdges, removeEdges)
  • Uses an LLM to generate targeted code edits with FastApply merge
  • Eliminates fragile code parsing/regeneration
For MCP tool nodes: adds node + edge + generates function automatically. For code-block nodes: generates placeholder function automatically. Uses optimistic locking (expectedVersion) to detect conflicts when multiple users edit simultaneously. Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringYesAutomation ID to edit
expectedVersionnumberNoExpected automation version (from last read). If provided, fails if version changed.
addNodesanyNoNodes to add
removeNodesstring[]NoNode IDs to remove (also removes edges and functions)
updateNodesobject[]NoNodes to update
addEdgesobject[]NoEdges to add
removeEdgesobject[]NoEdges to remove
updateFunctionsobject[]NoNode functions to update
updateResourcesanyNoResources to update or rebind

workflow_read

Get workflow structure and optionally focused details for a specific node. IMPORTANT: Only include parameters you actually need. Do NOT pass empty strings, empty arrays, or false for optional parameters — omit them entirely. For example, to check resources, send ONLY: { automationId: ”…”, checkResources: true } Choose one primary read mode:
  • Use only automationId for a lightweight structure read
  • Add exactly one focused mode (nodeId, nodeIds, search, addBetween, or includeCode) when you need targeted details
  • Add checkResources: true only when verifying bindings or resource health
Default response (lightweight):
  • nodes: List of {id, name, type} for all nodes
  • edges: Connection graph
  • resources: List of declared resource names
With nodeId (focused read for modifying a node):
  • focus.node: Node details (see below for what’s returned based on node type)
  • focus.neighbors: Before/after nodes with their schemas
  • focus.availableData: All upstream node outputs (field names)
  • focus.globals: Inputs, resources, context variables (@workflow., @user., etc.)
Node types in focused read:
  • code-block/mcp-tool nodes: Returns code, inputSchema, outputSchema
  • Control flow nodes (router, merge, for-each, if-else, loop, while, parallel, try-catch, delay, race, sub-workflow): Returns full node properties (expression, routes, sources, body, etc.) - NO code since these are runtime primitives
  • trigger nodes: Returns full node properties including outputSchema
With nodeIds (multi-node read):
  • focusedNodes: Map of nodeId to {code, inputSchema, outputSchema} for each requested node
With search (grep across code):
  • matches: Array of {nodeId, line, match, context} for each matching line
  • totalMatches: Total count
With addBetween (for inserting a new node):
  • insertionPoint: Context for where to add the node
With includeCode (full dump — prefer search or nodeIds for targeted reads):
  • code: Full workflow code (WARNING: can be very large for complex workflows)
With checkResources (for binding):
  • resources: Detailed binding status for each resource
Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringYesAutomation ID to read
nodeIdstringNoFocused single-node read. Prefer this when inspecting one node. Omit nodeIds/search/includeCode unless you specifically need a different mode. For code-block/mcp-tool: returns code. For control flow nodes (router, merge, for-each, etc.): returns all node properties (no code).
nodeIdsstring[]NoFocused multi-node read. Use this instead of includeCode when you only need a few nodes. Omit nodeId/search/includeCode unless you intentionally want a different mode. Returns focusedNodes map with {code, inputSchema, outputSchema} per node.
searchstringNoRegex pattern to search across the full workflow code. Use this instead of includeCode when you are looking for a specific pattern. Omit nodeId/nodeIds/includeCode unless you intentionally need another mode. Returns matching lines with node attribution and context.
searchLimitnumberNoMaximum number of matches to return for search. Default: 50. Use a lower value for broad patterns.
addBetweenobjectNoGet insertion context between two nodes. OMIT THIS PARAMETER ENTIRELY if you are not inserting a node between two existing nodes. Do not pass empty strings or placeholder values — just leave addBetween out of your request.
expandDataFromstring[]NoGet full schemas (not just field names) for specific upstream nodes
includeCodebooleanNoInclude full workflow code in response. Use only when you truly need the entire file; prefer nodeId, nodeIds, or search for targeted reads.
checkResourcesbooleanNoInclude detailed resource binding status. Combine with automationId alone for binding verification, or add it to another focused read when you explicitly need both.

workflow_run

Execute workflow and return results. Runs entire workflow by default. Use runUntilNode to stop after a specific node completes. Long-running workflows are automatically handled by the async execution system. Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringYesAutomation ID to run
inputsobjectNoRuntime input values as key-value pairs (overrides default inputs set via workflow_set_inputs).
runUntilNodestringNoStop execution after this node completes. Only nodes on the path from trigger to this node will execute. Use this to run part of a workflow without executing downstream nodes.
nodeIdstringNoDEPRECATED: Use runUntilNode instead. Node ID to run in isolation for testing.
maxWaitMsnumberNo[Testing only] Maximum internal polling time in milliseconds before returning. Default 14 minutes. Use a smaller value (e.g. 2000) in tests to quickly trigger RUNNING response.

workflow_pin

Pin or unpin node outputs to reuse across workflow runs. Pinned nodes skip execution and use stored output from a previous run. Use this to avoid re-running expensive operations (LLM calls, API requests) during development. Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringYesAutomation ID
pinsobjectYesMap of nodeId to runId (to pin) or null (to unpin). Example: { “node_A”: “run-123”, “node_B”: null } pins node_A to run-123 outputs and unpins node_B.

workflow_run_status

Check the status of a workflow run and wait for completion. Automatically polls until the workflow completes or the async execution system handles long-running operations. Returns full results when complete. Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringYesAutomation ID
runIdstringYesRun ID from a previous workflow execution
maxWaitMsnumberNo[Testing only] Maximum internal polling time in milliseconds before returning. Default 14 minutes. Use a smaller value (e.g. 2000) in tests to quickly trigger RUNNING response.

workflow_set_inputs

Set default/test input values for workflows. Values are used when running via workflow_run (dev/test runs) and optionally merged with trigger-provided values at runtime when useAsGlobals is true. Use this to define test data that matches your trigger type — for example, simulated email fields for email triggers, custom values for schedule triggers, or form field values for API/interface triggers. For input schemas (form field definitions), use the trigger tools (workflow_trigger_api or workflow_trigger_interface) instead. Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringYesAutomation ID to set inputs for
inputsstringYesInput values as object or JSON string. Keys must match the input names used in @workflow.keyName references. Set values that match your trigger type for realistic test runs:
• Email triggers: { from: “sender@example.com”, subject: “Test Subject”, body: “Email body text”, htmlBody: “<p>HTML body</p>”, attachments: [] }
• Schedule triggers: any custom key-value pairs the workflow expects (e.g., { reportDate: “2026-01-15”, region: “US” })
• API/Interface triggers: values matching the form fields defined in the trigger inputSchema (e.g., { full_name: “Jane Doe”, department: “engineering” })

mcp_discover

Find MCP servers and tools for any task. Covers external integrations (gmail, slack, zendesk, salesforce) AND embedded capabilities (datastore, llm, ocr, web-application, summarization, translation, web scraping). Returns tool specifications along with IDs needed to use them when relevant. Parameters:
ParameterTypeRequiredDefaultDescription
userRequeststringYesNatural language description of the task (e.g., “Get Gmail emails”, “Summarize text”, “Create HTML app”, “Extract text from PDF”).
includeResourcesbooleanNotrueInclude user connections (with PCIDs for auth) and collections (datastores, vaults). Default true.
refreshCachebooleanNofalseBypass cache to fetch fresh data. Default false. Set true only if user just added a new connection or collection.

capabilities_discover

Discover available capabilities for a task. Returns lightweight recommendations for tools, agent skills, connections, and/or resources. Call capability_details to get full details for selected items. Use the “types” parameter to filter by capability type. Parameters:
ParameterTypeRequiredDefaultDescription
requeststringYesNatural language description of the task (e.g., “process vendor invoices”, “create HTML dashboard”, “send email with attachments”).
typesstring[]NoFilter results to specific capability types. If omitted, returns all types. Examples: [“connection”] for connections only, [“resource”] for resources only, [“tool”, “agentSkill”] for tools and skills only.
contextstringNoSkill context filter. Use “workflow-creation” if you are the Agent Mode Workflow Builder (building or editing workflows). Use “agent-execution” for all other agents executing tasks. If omitted, returns all skills.

capability_details

Get full details for selected capabilities. For tools: returns inputSchema (full JSON Schema with nested objects, arrays, enums, and required fields), outputSchema, isDynamic (true for dynamic MCP servers), and any matching agent skill content. For agent skills: returns full knowledge content. For connections: returns connection metadata. For resources: returns collection details. Use the “types” parameter to filter by capability type. For custom integrations, when capabilities_discover returns a tool name like “myintegration_c_request”, pass ONLY that exact tool name to capability_details (not the integration name or skill name). The response automatically includes all associated content including skill instructions. Parameters:
ParameterTypeRequiredDefaultDescription
itemsstring[]YesNames/IDs of capabilities to get details for (e.g., [“google-drive”, “invoice-processing”, “html-creation”, “My Google Drive Connection”, “sales”]). Use exact tool names returned from capabilities_discover.
typesstring[]NoFilter results to specific capability types. If omitted, searches all types. Examples: [“connection”] for connections only, [“resource”] for resources only.

workflow_results

Deep inspection of workflow run output files. Use after workflow_run to verify output correctness or inspect data. Operations: “list” (artifact summaries with structure/preview/tips — use first to see which files exist, including HTML/UI artifacts), “search” (regex across files), “read” (extract data with path/sample/pagination/fields), “getUrl” (get signed URL for a specific file to download or pass to another tool). For full execution logs (pf.log.* output), use read with filename: “stdout.txt” — returns JSON with a log field. Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringYesAutomation ID
runIdstringNoRun ID to inspect. If not provided, uses the last dev run (__lastDevRunId from automation inputs).
operationstringYesOperation type: “list” (get artifact summaries with structure/preview/tips — best first step after workflow_run, especially to spot HTML/UI outputs), “search” (regex search across files), “read” (read actual data), “getUrl” (get signed URL for a file)
patternstringNo[search] Regex pattern to search for across all output files. Case-insensitive.
limitnumberNo10[search] Maximum number of matches to return. Default: 10.
filenamestringNo[read/getUrl] Name of the output file to read or get URL for. Examples: “node_2_output.json”, “stdout.txt” (full execution logs — JSON with log field), “dashboard.html” (fetch the rendered HTML artifact directly).
pathstringNo[read] Path to extract specific data. Supports dot notation (data.users.0.name) and bracket notation (data.users[0].name). Examples: “tickets.0” (first ticket), “data.users[1]” (second user), “users[0].email”. Does not support wildcards or negative indices.
samplenumberNo[read] Return only first N items from array. Useful for inspecting structure without loading all data.
offsetnumberNo[read] Pagination offset - skip first N items. Combine with limitRead for pagination.
limitReadnumberNo[read] Pagination limit - return N items after offset.
fieldsstring[]No[read] Field projection - return only specified fields from objects. Example: [“id”, “subject”] returns only those fields.

workflow_release_diff

Compare current draft code against the latest published release. Returns a unified diff showing what changed, per-step breakdown, and summary statistics (lines added/removed/changed). Use this to understand what code was running in production vs what has been modified since. Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringYesAutomation ID to compare draft vs published code

workflow_trigger_schedule

Create, manage, and list schedule triggers that automatically start workflows on a cron schedule. Actions: create, get, update, delete, list, enable, disable. Pass resourceName to auto-bind on create. VERSION CONTROL: useDraft=true for development (default), useDraft=false + release=N for production. Parameters:
ParameterTypeRequiredDefaultDescription
actionstringYesOperation to perform. update requires version (get via read first).
automationIdstringNoWorkflow ID (same as automationId). Required for all actions except list without filter.
idstringNoTrigger ID. Required for: read, update, delete, enable, disable.
versionnumberNoCurrent trigger version. Required for update/delete. Get current version via read first.
namestringNoDisplay name for the trigger. Required for create.
useDraftbooleanNotrueIf true, run the current draft workflow code (development mode). If false, run a specific published release (production mode) - must also set release parameter.
releasenumberNo0Release version number (1, 2, 3…). Only used when useDraft=false. Must specify an exact release number that has been published - there is no “latest” option.
queueIdstringNoQueue ID specifying which queue will process runs from this trigger. Queues control concurrency and sequential execution.
resourceNamestringNoOptional workflow resource name to auto-bind on create (e.g., “dailySchedule”).
cronstringNoAWS EventBridge cron expression: 6 fields required “minute hour day-of-month month day-of-week year”. Required for create. The 6th field (year) can be * for every year. Ask the user for their schedule in natural language, then convert to cron. Examples: “0 9 * * ? *” = 9AM daily, “0 */2 * * ? *” = every 2 hours, “0 9 ? * MON-FRI *” = weekdays at 9AM.
tzstringNoIANA timezone. Required for create. Ask the user for their timezone, then convert to IANA format. Examples: “America/Los_Angeles”, “America/New_York”, “UTC”.
inputsstringNoJSON string of inputs to pass to the workflow when the schedule fires. These are the runtime values available to the workflow as @input.<field>.

workflow_trigger_api

Create, manage, and list API (webhook) triggers that provide an HTTP endpoint to start workflows. Actions: create, get, update, delete, list, enable, disable. Pass resourceName to auto-bind on create. For API and Interface triggers, use inputSchema to define form fields (see workflow-trigger-schema skill for details). VERSION CONTROL: useDraft=true for development (default), useDraft=false + release=N for production. Parameters:
ParameterTypeRequiredDefaultDescription
actionstringYesOperation to perform. update requires version (get via read first).
automationIdstringNoWorkflow ID (same as automationId). Required for all actions except list without filter.
idstringNoTrigger ID. Required for: read, update, delete, enable, disable.
versionnumberNoCurrent trigger version. Required for update/delete. Get current version via read first.
namestringNoDisplay name for the trigger. Required for create.
useDraftbooleanNotrueIf true, run the current draft workflow code (development mode). If false, run a specific published release (production mode) - must also set release parameter.
releasenumberNo0Release version number (1, 2, 3…). Only used when useDraft=false. Must specify an exact release number that has been published - there is no “latest” option.
queueIdstringNoQueue ID specifying which queue will process runs from this trigger. Queues control concurrency and sequential execution.
resourceNamestringNoOptional workflow resource name to auto-bind on create (e.g., “apiEndpoint”).
apiKeyIdstringNoAPI key ID for authentication. If omitted or set to “new”, a new API key is auto-created with name “API key for {triggerName}, {automationId}”.
designatedOutputobjectNoSpecifies which output file to return when the API is called with wait=true. Object with stepIndex (number) and fileName (string). Example: {stepIndex: 1, fileName: “output.json”}. If omitted, all outputs are returned.
inputSchemaanyNoJSON object documenting the inputs this API trigger expects. Informational only — callers (agents, systems) read this to know what values to send. Each key is a field name mapping to an object with type, required, label, placeholder, and other options. Supported types: string, number, boolean, enum, array, object, csv, date, datetime, email, url, file. This is NOT JSON Schema — do not use “type”: “object” or “properties” at the top level. See the workflow-trigger-schema skill for full format reference.

workflow_trigger_email

Create, manage, and list email triggers that start workflows when emails are received. Actions: create, get, update, delete, list, enable, disable. Pass resourceName to auto-bind on create. VERSION CONTROL: useDraft=true for development (default), useDraft=false + release=N for production. Parameters:
ParameterTypeRequiredDefaultDescription
actionstringYesOperation to perform. update requires version (get via read first).
automationIdstringNoWorkflow ID (same as automationId). Required for all actions except list without filter.
idstringNoTrigger ID. Required for: read, update, delete, enable, disable.
versionnumberNoCurrent trigger version. Required for update/delete. Get current version via read first.
namestringNoDisplay name for the trigger. Required for create.
useDraftbooleanNotrueIf true, run the current draft workflow code (development mode). If false, run a specific published release (production mode) - must also set release parameter.
releasenumberNo0Release version number (1, 2, 3…). Only used when useDraft=false. Must specify an exact release number that has been published - there is no “latest” option.
queueIdstringNoQueue ID specifying which queue will process runs from this trigger. Queues control concurrency and sequential execution.
resourceNamestringNoOptional workflow resource name to auto-bind on create (e.g., “emailTrigger”).
approvedSendersstring[]NoList of approved sender email addresses. Emails from addresses not in this list (or approvedDomains) are rejected.
approvedDomainsstring[]NoList of approved sender domains (e.g., “company.com”). Emails from domains not in this list (or approvedSenders) are rejected.

workflow_trigger_application

Create, manage, and list application triggers (GitHub, Shopify, etc.) that start workflows on app events. Actions: create, get, update, delete, list, enable, disable. Pass resourceName to auto-bind on create. VERSION CONTROL: useDraft=true for development (default), useDraft=false + release=N for production. Parameters:
ParameterTypeRequiredDefaultDescription
actionstringYesOperation to perform. update requires version (get via read first).
automationIdstringNoWorkflow ID (same as automationId). Required for all actions except list without filter.
idstringNoTrigger ID. Required for: read, update, delete, enable, disable.
versionnumberNoCurrent trigger version. Required for update/delete. Get current version via read first.
namestringNoDisplay name for the trigger. Required for create.
useDraftbooleanNotrueIf true, run the current draft workflow code (development mode). If false, run a specific published release (production mode) - must also set release parameter.
releasenumberNo0Release version number (1, 2, 3…). Only used when useDraft=false. Must specify an exact release number that has been published - there is no “latest” option.
queueIdstringNoQueue ID specifying which queue will process runs from this trigger. Queues control concurrency and sequential execution.
resourceNamestringNoOptional workflow resource name to auto-bind on create (e.g., “githubWebhook”).
appServicestringNoMCP service key (e.g., “github”, “shopify”, “stripe”). Required for create.
appConnectionIdstringNoConnection ID (PCID) for the service. Required for create.
appTriggerTypestringNoSpecific trigger type (e.g., “github_repository_events”, “shopify_orders”). Required for create.
appTriggerMechanismstringNoHow the trigger receives events: “webhook” (real-time) or “polling” (periodic check).
appConfigobjectNoApp-specific configuration object. Example for GitHub: { owner: “org”, repo: “repo-name”, events: [“push”, “pull_request”] }.
pollIntervalnumberNoPoll interval in seconds for polling triggers. Valid values: 60, 300, 900, 1800, 3600.
pollBatchModebooleanNoIf true, batch all events into one run. If false, one run per event.
webhookSecretstringNoSecret for webhook signature verification (webhook mechanism only).

workflow_trigger_interface

Create, manage, and list interface triggers (user-facing forms generated from a workflow’s inputSchema). Actions: create, get, update, delete, list, enable, disable. Pass resourceName to auto-bind on create. VERSION CONTROL: useDraft=true for development (default), useDraft=false + release=N for production. Parameters:
ParameterTypeRequiredDefaultDescription
actionstringYesOperation to perform. update requires version (get via read first).
automationIdstringNoWorkflow ID (same as automationId). Required for all actions except list without filter.
idstringNoTrigger ID. Required for: read, update, delete, enable, disable.
versionnumberNoCurrent trigger version. Required for update/delete. Get current version via read first.
namestringNoDisplay name for the trigger. Required for create.
useDraftbooleanNotrueIf true, run the current draft workflow code (development mode). If false, run a specific published release (production mode) - must also set release parameter.
releasenumberNo0Release version number (1, 2, 3…). Only used when useDraft=false. Must specify an exact release number that has been published - there is no “latest” option.
queueIdstringNoQueue ID specifying which queue will process runs from this trigger. Queues control concurrency and sequential execution.
resourceNamestringNoOptional workflow resource name to auto-bind on create (e.g., “intakeForm”).
apiKeyIdstringNoAPI key ID for authentication. If omitted or set to “new”, a new API key is auto-created with name “API key for {triggerName}, {automationId}”.
designatedOutputobjectNoSpecifies which node output to display to the user. Used by “form-results” and “results-viewer” subtypes. Can be set at creation or added later via update once the workflow nodes exist. Object with stepIndex (number) and fileName (string). Example: {stepIndex: 1, fileName: “output.json”}.
inputSchemaanyNoJSON object defining the form fields rendered to the user. Required for “form-confirmation” and “form-results” subtypes. Each key is a field name mapping to an object with type, required, label, placeholder, and other options. Supported types: string, number, boolean, enum, array, object, csv, date, datetime, email, url, file. This is NOT JSON Schema — do not use “type”: “object” or “properties” at the top level. See the workflow-trigger-schema skill for full format reference.
subTypestringNoInterface template subtype. Required for create, optional for update/read/list/delete flows. Values: “form-confirmation” (user fills form, sees thank-you page), “form-results” (user fills form, sees output from designatedOutput node — designatedOutput can be set later via update), “results-viewer” (no form — displays designatedOutput node results directly — designatedOutput can be set later via update).

workflow_trigger_replace

Replace an existing trigger in one call: reads old trigger, creates replacement with carried-forward fields, then deletes old trigger. Use this for switch/replace operations to avoid dropping required properties. Pass resourceName to auto-bind the new trigger after creation. Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringYesWorkflow ID (automationId). Required.
oldTriggerIdstringYesTrigger ID to replace. The handler reads this trigger first to preserve fields and version-lock deletion.
newTypestringNoOptional type for the replacement trigger. If omitted, keeps the old trigger type.
namestringNoDisplay name for the new trigger. If omitted, carries forward the old name.
useDraftbooleanNoIf true, run draft workflow code. If omitted, carries forward old trigger setting.
releasenumberNoRelease version used when useDraft=false. If omitted, carries forward old trigger setting.
queueIdstringNoOptional queue ID. If omitted, carries forward old queueId when present.
resourceNamestringNoOptional workflow resource name to auto-bind the NEW trigger on replacement.
cronstringNoSchedule trigger cron expression. Required when replacing to schedule and no prior schedule cron exists.
tzstringNoSchedule trigger timezone. Required when replacing to schedule and no prior schedule timezone exists.
inputsstringNoOptional JSON string runtime inputs for schedule triggers. If omitted, carries forward old value when present.
apiKeyIdstringNoAPI key for api/interface triggers. If omitted, carries forward old value when present.
designatedOutputobjectNoDesignated output for result-based triggers. If omitted, carries forward old value when present.
inputSchemaanyNoForm/input schema. Include when creating or editing fields; otherwise old schema is carried forward when present.
subTypestringNoInterface subtype. Required when replacing to interface and it cannot be carried forward from the old trigger.
approvedSendersstring[]NoEmail trigger approved sender list. If omitted, carries forward old value when present.
approvedDomainsstring[]NoEmail trigger approved domains list. If omitted, carries forward old value when present.
appServicestringNoApplication trigger MCP service key (e.g., github). Required when replacing to application and no prior value exists.
appConnectionIdstringNoApplication trigger connection ID. Required when replacing to application and no prior value exists.
appTriggerTypestringNoApplication trigger type. Required when replacing to application and no prior value exists.
appTriggerMechanismstringNoApplication trigger mechanism. If omitted, carries forward old value when present.
appConfigobjectNoApplication trigger configuration object. If omitted, carries forward old value when present.
pollIntervalnumberNoApplication polling interval in seconds. If omitted, carries forward old value when present.
pollBatchModebooleanNoApplication polling batch mode. If omitted, carries forward old value when present.
webhookSecretstringNoApplication webhook secret. If omitted, carries forward old value when present.

workflow_trigger_list_all

List triggers across all trigger types. When automationId is provided, returns only triggers for that workflow. When omitted, returns all triggers across all workflows. Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringNoOptional workflow ID to scope results. Omit to list all triggers globally.

workflow_trigger_cleanup

Delete unused triggers for an automation. Unused = trigger exists but is not bound to any resource in WORKFLOW_RESOURCES. Call this after creating replacement triggers to clean up orphaned triggers. Returns list of deleted triggers, kept triggers, and failed triggers (with error details if any could not be deleted). Parameters:
ParameterTypeRequiredDefaultDescription
automationIdstringYesAutomation ID to clean up triggers for

workflow_agents

Create, read, update, list, and invoke agents for use in workflows. Agents can be bound to workflows via workflow_bind_resources and called via pf.agents.get() and pf.agents.call(). ACTIONS: create (new agent), read (get details), update (modify), list (all agents), invoke (call agent). FOR CREATE/UPDATE WITH SERVERS: Call mcp_discover first to see available MCP servers and tools. Parameters:
ParameterTypeRequiredDefaultDescription
actionstringYesOperation: create (new agent), read (get by ID), update (modify), list (all agents), invoke (call agent)
agentIdstringNo[read, update, invoke] ID of the agent (e.g. “ua_abc123”). Required for read, update, and invoke actions.
namestringNo[create, update] Display name for the agent. Required for create.
descriptionstringNo[create, update] Description of what the agent does.
instructionsstringNo[create, update] System instructions/prompt that guides agent behavior. Required for create.
outputSchemastringNo[create, update] Optional JSON schema for structured agent output.
serversobject[]No[create, update] MCP servers and tools for the agent. IMPORTANT: Call mcp_discover first to get valid server/tool names. For update, replaces existing servers completely.
workflowsobject[]No[create, update] Workflows the agent can trigger.
messagestringNo[invoke] The message or task to send to the agent. Required for invoke action.
chatIdstringNo[invoke] Optional chat ID to continue a previous conversation. If provided, the conversation history will be loaded. If omitted, a new conversation will be started.
modestringNo[invoke] Optional agent mode for routing. “action_agent” routes to GPT-based agent (default), “claude_agent” routes to Claude-based agent.
messagesInResponsebooleanNo[invoke] If true, includes the full message history in the response. Useful for debugging or reviewing conversation context.

workflow_invoke

Invoke/call/execute another workflow (sub-workflow) using its webhook trigger URL. Use this when a workflow needs to call or trigger another workflow. Automatically executes async and polls for results (up to 14 minutes). Get the webhookEndpoint URL from the trigger sub-agent or workflow_trigger_* tools. Parameters:
ParameterTypeRequiredDefaultDescription
urlstringYesThe workflow trigger URL (webhookEndpoint). Get this from the trigger sub-agent or workflow_trigger_* tools when creating/listing triggers for the target workflow.
payloadobjectNoInput parameters for the workflow. Should match the workflow’s expected input schema.

workflow_list

List all workflows accessible to the user. Returns workflows that have API triggers configured, including their automation ID, name, and trigger details. Use this to discover existing workflows that can be invoked as sub-workflows. Parameters:
ParameterTypeRequiredDefaultDescription
filterstringNo"with_triggers"Filter workflows: “all” returns all automations, “with_triggers” (default) returns only those with API triggers, “without_triggers” returns those without triggers.