
pipefy-ipaas
Use when the user wants to build, test, publish, or manage iPaaS (Advanced Automations) flows: multi-step integrations with external apps (Slack, Gmail, Google Sheets), incoming webhooks, schedules, routers, code steps, or iPaaS data tables. Driven through a per-pipe catalog discovered at runtime. For native if/then rules or prompt-driven AI automations, use pipefy-automations instead.
- Installs
- 605
- Last 24h
- +10
- Trending rank
- #8881
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/pipefy/ai-toolkit --skill pipefy-ipaas- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads pipefy-ipaas automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
iPaaS (Advanced Automations)
MCP clients: read references/mcp.md. CLI users: read references/cli.md. Examples below describe shared operation arguments.
Pipefy's embedded workflow-automation platform. A flow is a trigger plus a sequence of steps that call pieces (integration connectors). The flow-builder verbs are catalog entries you discover per pipe and invoke through call_ipaas_tool, never a fixed operation list.
When to use
- "Integrate with Slack / Gmail / Google Sheets / an external app."
- User asks to integrate Pipefy with an external app (Slack, Gmail, Sheets, etc.) — use iPaaS tools here, not traditional automations or AI agents by default.
- "When a webhook comes in, do X." "On a schedule, do Y."
- "Build a multi-step flow with a router / loop / code step."
- Managing iPaaS data tables (separate from Pipefy database tables).
When not to use: native if/then rules on card events, or prompt-driven AI automations, both live in pipefy-automations. Simple HTTP callbacks on card events are create_webhook in pipefy-members-email-webhooks.
Prerequisites
-
iPaaS enabled on the organization. If not, the backend typically returns a permission error (often coded
PERMISSION_DENIEDwith text like "iPaaS is disabled for your organization" — exact code/string is backend-dependent). -
Permission to create automations on the pipe (pipe-admin ability).
-
Service account must be a pipe member. When a flow runs under a service account, that account must be a member of the target pipe, or pipe-scoped calls under its identity fail with a permission error even after the flow is built. Adding the account elsewhere (org-level) is not enough. Provision one with
create_service_accountif needed, then attach it withadd_service_account_to_pipe(pipe_id, email, role_name)immediately — seepipefy-members-email-webhooksand docs/mcp/tools/service-accounts.md. The catalog operations act as the calling session's identity, so this applies to the service account your flow runs under, not to the catalog caller. -
The iPaaS workspace is per-pipe: the catalog and any existing flows, connections, and tables belong to one
pipe_id, so the same call against two pipes can differ.
Operations
| Operation | Read-only | Purpose |
|---|---|---|
get_ipaas_tools | Yes | Discover the per-pipe catalog (compact), or with tool_name expand one entry's full input schema. |
call_ipaas_tool | No | Invoke one catalog entry by name with arguments matching its schema. |
get_ipaas_connection_auth_url | No | Start an OAuth connection: returns a consent URL to hand the user, plus a completion bundle. |
create_ipaas_connection | No | Finish an OAuth connection, or create a token / API-key one directly. |
Discover the operation catalog
The catalog is large (flow building, testing, tables, runs), some entries carrying very large input schemas. Do not load them all. Work in three steps:
get_ipaas_tools(pipe_id)— compact catalog: each entry'snameand one-line description.get_ipaas_tools(pipe_id, tool_name="...")— one entry's full description andinputSchema, fetched right before you use it.call_ipaas_tool(pipe_id, tool_name="...", arguments={...})— invoke it. Arguments are forwarded verbatim; the iPaaS host validates them and its error messages relay back.
Never expand more than the entry you are about to call, and read the entry's own schema for exact argument names (they are not uniform across the catalog). What the catalog offers, by capability group:
- Author a flow — create a flow (trigger plus steps) in one call; add or update individual steps; set or update the trigger; add conditional router branches; rename or duplicate a flow. Steps can be an integration piece, a code step, a loop, or a router (prefer a piece over code).
- Inspect a flow — list flows; read a flow's step tree and per-step validity; validate a flow before publishing.
- Discover pieces — search the piece catalog (exact or fuzzy); read a piece action/trigger's input properties; resolve dropdown option values; validate a step config before applying it.
- Connections — list existing connections (each exposes an
externalIdused as a step'sauth); get setup guidance. - Publish / lifecycle — lock and publish a draft (enables it); enable or disable a published flow; delete a flow.
- Test and runs — test a flow end to end; test a single step; list runs; read one run's detail; retry a failed run; run one piece action once without saving a flow.
- iPaaS data tables — list tables, query records, create tables and fields, insert/update/delete records, delete a table.
- AI — list configured AI providers and models for agent-style steps.
Before a destructive catalog operation, show its impact and obtain explicit approval. Prefer updating a step over deleting it.
Steps — build and test a flow
The proven lifecycle: discover, build, validate, test, then publish. A self-contained webhook-to-code flow (no external connection) validated this end to end live.
-
Discover the catalog, then expand the flow-builder entry to read its schema:
get_ipaas_tools(pipe_id=<pipe_id>) get_ipaas_tools(pipe_id=<pipe_id>, tool_name=<flow-builder entry>) -
Research the pieces you will use and read the exact trigger/action props before building. A trigger often has required config: a webhook trigger, for example, requires an authentication-type property (set it to none for an open URL). Use the piece-research and piece-props entries from the catalog.
-
Build the flow in one call via the flow-builder entry: a trigger plus an ordered list of steps. Reference the trigger output and earlier steps with the host's templating in each step's input. The call returns a
flowIdand a per-step validity summary. -
Validate before testing (the validate entry) — reports structural issues without publishing.
-
Test-run end to end via the test entry. It runs in the TESTING environment; allow for long-running tests. Pass mock trigger data when the trigger has no saved sample. A success returns each step's output — treat that payload as the source of truth for the test. Test-run has real side effects for external-app pieces (the action actually fires), so keep test data disposable; self-contained pieces (webhook, schedule, code, tables) are safe.
-
(Optional) Inspect the run with the run-detail entry for full step-by-step output. Read its schema for the exact argument name. Prefer the id returned by the test; if the run is not found, fall back to the run-listing entry or stop, since the test payload already holds the outputs.
-
Publish only on explicit user intent: the lock-and-publish entry locks the draft, publishes it, and enables it (yielding a live webhook URL for webhook triggers). A separate entry enables or disables an already-published flow.
Steps — connect an external app
Any piece that touches an external app (Slack, Gmail, Google Sheets) needs a connection first; pass its externalId as the step's (or trigger's) auth. Self-contained pieces (webhook, schedule, HTTP, code, iPaaS tables) need none.
- List existing connections (the connection-listing entry) and reuse an
externalIdif one fits. When several candidates serve the same piece, name them and ask the user rather than pick silently. - Token / API-key pieces: one
create_ipaas_connectioncall with the credential (connection_typeplusvaluematching the piece's auth props). - OAuth pieces:
get_ipaas_connection_auth_urlreturns a consent URL and a completion bundle; the user authorizes in a browser and pastes back the redirect URL;create_ipaas_connectionfinishes it. Durable tokens are stored host-side. Creation is an upsert onexternal_id(reuse an id to rotate a credential). - For dropdown fields (Slack channel, sheet, label), resolve options against the connection with the option-resolving entry and use the option
value, not the label. Large external workspaces can time out; take the ID from the user and pass it literally, since the action still works at runtime.
Steps — one-shot action (no flow)
For a single task ("send one Slack message", "check my inbox"), the catalog has a run-one-action entry: a piece, action, input, and auth, executed once. No flow is created or saved.
Success criteria
- The validate entry reports the flow ready to publish (all steps valid).
- The test entry returns a success with the expected step outputs.
- The list/structure entries show the flow with a configured trigger and no unconfigured steps.
Failure modes
-
Org-level iPaaS disabled. The backend typically returns a permission error (often
PERMISSION_DENIED/ "iPaaS is disabled for your organization"); nothing in the catalog works. Enable iPaaS on the org or use one that has it. -
Trigger unconfigured after build. A trigger with required props (for example a webhook trigger's authentication type) blocks validation until set. Read its props first, then set them in the trigger input.
-
Wrong argument name. Entry schemas are not uniform (a run-detail entry may key the run id differently from how a test entry returns it). Always expand the entry with
get_ipaas_tools(pipe_id, tool_name=…)and build arguments from that schema. -
Test-run has real side effects. For external-app pieces the test performs the real action even from a draft. Keep test data disposable; self-contained pieces are safe.
-
External step fails with an auth error. The piece needs a connection. Create one and pass its
externalIdas the stepauth; for Slack the bot must be a member of the target channel. -
PERMISSION_DENIEDon pipe operations under a service account. The service account the flow runs under is not a member of the pipe. Attach it withadd_service_account_to_pipe(pipe_id, email, role_name)and confirm withget_pipe_members. -
Dropdown resolution times out. Large external workspaces can time out. Ask the user for the ID and pass it literally.
See also
pipefy-automations— native if/then rules and AI automations (not iPaaS).pipefy-members-email-webhooks—create_webhookfor HTTP callbacks on card events;add_service_account_to_pipeto grant a flow's service account pipe membership.- docs/mcp/tools/ipaas.md and docs/ipaas.md — meta-tool semantics and flow vocabulary.
FAQ
What does the pipefy-ipaas skill do?
Use when the user wants to build, test, publish, or manage iPaaS (Advanced Automations) flows: multi-step integrations with external apps (Slack, Gmail, Google Sheets), incoming webhooks, schedules, routers, code steps, or iPaaS data tables. Driven through a per-pipe catalog discovered at runtime. For native if/then rules or prompt-driven AI automations, use pipefy-automations instead.
How do I install pipefy-ipaas?
Run npx skills add https://github.com/pipefy/ai-toolkit --skill pipefy-ipaas in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/pipefy-ipaas/ (personal) or .claude/skills/pipefy-ipaas/ (project).
Which AI agents can use pipefy-ipaas?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is pipefy-ipaas safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains pipefy-ipaas?
It is published by pipefy in pipefy/ai-toolkit. It has 605 recorded installs.
More from pipefy/ai-toolkit
pipefy-observability
pipefy/ai-toolkit
Use this skill when the user wants to check AI agent logs, automation execution logs, org-level usage stats, AI credit consumption, or export automation job history.
pipefy-automations
pipefy/ai-toolkit
Use this skill when the user wants to create, read, update, or delete traditional automations (if/then rules) or AI automations (prompt-driven). For AI agents (conversational), see pipefy-ai-agents.
pipefy-pipes-and-cards
pipefy/ai-toolkit
Use this skill when the user wants to read, create, update, or delete pipes, phases, phase fields, labels, cards, comments, or field conditions. Use the seed-pipe-across-phases workflow when populating empty phases for demos or QA.
pipefy-introspection
pipefy/ai-toolkit
Use this skill when you need to discover GraphQL type shapes, mutation signatures, enum values, or execute arbitrary GraphQL as a fallback. This is the first fallback tier (Tier 2) when dedicated operations fail or don't exist for an operation.
pipefy-portal-setup
pipefy/ai-toolkit
Use this skill when the user wants to list, create, or configure Pipefy portals (main hub, pages, page elements, sub-portals, publish/unpublish). Uses Interfaces and internalapi. Not for pipes/cards.
pipefy-api-fallback
pipefy/ai-toolkit
Use this skill when a toolkit operation fails AND the introspection skill could not resolve the problem. This is the last-resort fallback (Tier 3): call the Pipefy GraphQL API directly using curl or httpx, authenticating with the Service Account (OAuth2) or a Personal Access Token (PAT) available as env var. Follow the 3-tier resolution strategy before reaching this point.
Popular productivity & automation skills
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
lark-doc
open.feishu.cn
飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。
lark-base
open.feishu.cn
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。
lark-drive
open.feishu.cn
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。
lark-shared
open.feishu.cn
Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.
lark-im
open.feishu.cn
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。