CONNECT APP
Build with Form.io
Web & App Development
- API key
MCP
Give your agent Form.io tools
Every Form.io action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Form.io account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "form_io",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Create Form:
const result = await mcp.callTool({
name: "form_io-create-form",
arguments: {
title: "Title",
name: "Name",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "form_io",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Create Form:
result = await session.call_tool("form_io-create-form", {
"title": "Title",
"name": "Name",
})API PROXY
Call the Form.io API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Form.io API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.example.com/v1/me",
})
// Any allowed Form.io endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.example.com/v1/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdjEvbWU?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Form.io actions from your backend
Connect a user's Form.io account once, then run Create Form on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "form_io-create-form",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
form_io: { authProvisionId: "apn_xxxxxxx" },
title: "Title",
name: "Name",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="form_io-create-form",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"form_io": {"authProvisionId": "apn_xxxxxxx"},
"title": "Title",
"name": "Name",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "form_io-create-form",
"configured_props": {
"form_io": { "authProvisionId": "apn_xxxxxxx" },
"title": "Title",
"name": "Name"
}
}'TOOLS
Form.io actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create Form
actionCreate a form or resource in Form.io. Use List Forms to review existing forms. Thecomponentsprop is a JSON-string array of Form.io component schema objects. See the documentation.Writev0.0.1 -
Create Form Action
actionAttach an action (e.g. email, webhook, save) to a Form.io form. Use List Forms to find the form ID and List Form Actions to review existing actions. Thesettingsprop is a JSON-string object specific to the action type. Example:actionTypewebhook,titleNotify endpoint,handler[after],method[create],settings{"url":"https://example.com/hook","method":"post"}→ returns the new action with its_id. See the documentation.Writev0.0.1 -
Create Role
actionCreate a role in the Form.io project. Use List Roles to review existing roles. Example: titleReviewer, descriptionCan review submissions→ returns the new role with its_id. See the documentation.Writev0.0.1 -
Create Submission
actionCreate a submission for a Form.io form. Use List Forms to find the form ID. Thedataprop is a JSON-string object of field key-value pairs matching the form's component keys. See the documentation.Writev0.0.1 -
Delete Form
actionPermanently delete a form or resource from Form.io. Use List Forms to find the form ID. This is irreversible. See the documentation.Writev0.0.1 -
Delete Form Action
actionPermanently remove an action attached to a Form.io form. Use List Form Actions to find the action ID. This is irreversible. See the documentation.Writev0.0.1 -
Delete Role
actionPermanently delete a role from the Form.io project. Obtain the role ID from List Roles (it is the role's 24-character hex_id, e.g.64f8a1b2c3d4e5f60718293a). This is irreversible. See the documentation.Writev0.0.1 -
Delete Submission
actionPermanently delete a submission from a Form.io form. Use List Submissions to find the submission ID. This is irreversible. See the documentation.Writev0.0.1 -
Get Form
actionRetrieve a single form or resource by its ID from Form.io. Use List Forms to find the form ID. See the documentation.Read-onlyv0.0.1 -
Get Form Action
actionRetrieve a single action attached to a Form.io form. Use List Form Actions to find the action ID. See the documentation.Read-onlyv0.0.1 -
Get Role
actionRetrieve a single role by its ID from the Form.io project. Obtain the role ID from List Roles (it is the role's 24-character hex_id, e.g.64f8a1b2c3d4e5f60718293a). See the documentation.Read-onlyv0.0.1 -
Get Submission
actionRetrieve a single submission for a Form.io form. Use List Forms to find the form ID and List Submissions to find the submission ID. See the documentation.Read-onlyv0.0.1 -
List Form Actions
actionList all actions attached to a Form.io form. Use List Forms to find the form ID. Form.io returns up tolimitrecords (default 10); if you receive a full page there may be more — raiselimit(up to 1000) or page withskipto retrieve them all. See the documentation.Read-onlyv0.0.1 -
List Forms
actionList forms and resources in the Form.io project. Optionally filter bytypeto return only forms or only resources. Form.io returns up tolimitrecords (default 10); if you receive a full page there may be more — raiselimit(up to 1000) or page withskipto retrieve them all. Forms are large; passfieldsto return only the fields you need (e.g._id,title,name,path). See the documentation.Read-onlyv0.0.1 -
List Roles
actionList all roles in the Form.io project, including the built-in Administrator, Authenticated, and Anonymous roles. Form.io returns up tolimitrecords (default 10); if you receive a full page there may be more — raiselimit(up to 1000) or page withskipto retrieve them all. See the documentation.Read-onlyv0.0.1 -
List Submissions
actionList submissions for a Form.io form. Optionally filter by state. Use List Forms to find the form ID. Form.io returns up tolimitrecords (default 10); if you receive a full page there may be more — raiselimit(up to 1000) or page withskipto retrieve them all. Passfieldsto return only the fields you need (e.g._id,data,created). See the documentation.Read-onlyv0.0.1 -
Update Form
actionUpdate a form or resource in Form.io. Only the fields you provide are changed; omitted fields keep their current values. Use List Forms to find the form ID. Thecomponentsprop is a JSON-string array of Form.io component schema objects. See the documentation.Writev0.0.1 -
Update Form Action
actionUpdate an action attached to a Form.io form. Only the fields you provide are changed; omitted fields keep their current values. Use List Form Actions to find the action ID. Thesettingsprop is a JSON-string object specific to the action type. See the documentation.Writev0.0.1 -
Update Role
actionUpdate a role in the Form.io project. Only the fields you provide are changed; omitted fields keep their current values. Obtain the role ID from List Roles (it is the role's 24-character hex_id, e.g.64f8a1b2c3d4e5f60718293a). Example: forroleId64f8a1b2c3d4e5f60718293a, set description toRead-only reviewer→ returns the updated role. See the documentation.Writev0.0.1 -
Update Submission
actionUpdate a submission for a Form.io form. Only the fields you provide are changed; omitted fields keep their current values. Use List Submissions to find the submission ID. Thedataprop is a JSON-string object of field key-value pairs. See the documentation.Writev0.0.1
EVENTS
Form.io triggers
Event sources your backend can deploy for users and receive through a webhook.
No Form.io triggers are available yet.
MULTI-APP
Use Form.io with other popular apps
Most products don't stop at one integration. Pair Form.io with the other apps your users rely on, and ship use cases that span both.
- App slug
- form_io
- Authentication
- API key
- Categories
- Web & App Development
- Actions
- 20
- Triggers
- 0
- API proxy
- Available