---
canonical_url: "https://docs.composio.dev/toolkits/opn_form"
markdown_url: "https://docs.composio.dev/toolkits/opn_form.md"
product: "platform"
version: null
last_updated: null
---

# OPNForm

OPNForm is an open-source form builder for creating forms, managing workspaces, collecting submissions, and configuring integrations.

- **Category:** forms & surveys
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 28
- **Triggers:** 0
- **Slug:** `OPN_FORM`
- **Version:** 00000000_00

## Tools

### Cancel Workspace Invite

**Slug:** `OPN_FORM_CANCEL_WORKSPACE_INVITE`

Cancel and remove a pending workspace invitation before it is accepted. Requires a personal access token with the workspace-users-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `invite_id` | integer | Yes | ID of the pending invite to cancel. |
| `workspace_id` | integer | Yes | ID of the workspace that owns the invite. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Form

**Slug:** `OPN_FORM_CREATE_FORM`

Create an OpnForm form in a workspace from a title, ordered field or layout blocks, and optional validated form settings. Optional retention settings permanently delete future submissions after the configured period. Requires a personal access token with the forms-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | Title displayed for the form. |
| `settings` | object | No | Optional documented form settings. OpnForm's supported defaults are used for omitted required appearance settings. Resource identity, title, workspace, and properties cannot be supplied here. |
| `properties` | array | Yes | Ordered field and layout blocks. Every block requires a stable UUID id and a type; documented block-specific keys are preserved. |
| `workspace_id` | integer | Yes | ID of the workspace that will own the form. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Form Integration

**Slug:** `OPN_FORM_CREATE_FORM_INTEGRATION`

Create a generic webhook or Make integration for an OpnForm form. This registers an external destination for future form submission data; an active integration can begin sending submissions to that destination immediately, while an inactive integration remains configured without delivery. Requires a personal access token with the manage-integrations ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string ("active" | "inactive") | No | Whether delivery starts immediately. Use inactive to save the integration without sending events yet. |
| `form_id` | integer | Yes | Numeric ID of the form to connect. |
| `webhook_url` | string | Yes | Public HTTPS endpoint that will receive future form submission data. OpnForm rejects private callback URLs. |
| `provider_url` | string | No | Optional Make scenario URL stored with a Make integration; omit for a generic webhook. |
| `integration_type` | string ("webhook" | "make") | Yes | Integration provider: a generic webhook or OpnForm's Make integration. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Submission

**Slug:** `OPN_FORM_CREATE_SUBMISSION`

Submit answers to a public OpnForm form. A completed submission may immediately send its data to active webhook or Make integrations; optionally save a partial submission with completion and campaign-attribution metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `answers` | object | Yes | Map of form field IDs to submitted values. Obtain field IDs and their expected value types from Get Form. |
| `form_slug` | string | Yes | Public slug of the form to submit. |
| `is_partial` | boolean | No | Whether to save this as a partial rather than completed submission. |
| `completion_time` | number | No | Optional time in seconds spent completing the form. |
| `tracking_parameters` | object | No | Optional allowlisted campaign and click attribution values. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Workspace

**Slug:** `OPN_FORM_CREATE_WORKSPACE`

Create an OpnForm workspace. Account workspace limits may reject creation even when the personal access token has write access. Requires a personal access token with the workspaces-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name for the new workspace. |
| `emoji` | string | No | Optional emoji or icon for the workspace. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Form

**Slug:** `OPN_FORM_DELETE_FORM`

Permanently delete a form and all of its submissions by numeric ID. This irreversible operation cannot be undone. Requires a personal access token with the forms-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `form_id` | integer | Yes | Numeric ID of the form to permanently delete together with all of its submissions. This cannot be undone. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Form Integration

**Slug:** `OPN_FORM_DELETE_FORM_INTEGRATION`

Permanently remove a webhook integration from a form and stop its future deliveries. This operation cannot be undone. Requires a personal access token with the manage-integrations ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `form_id` | integer | Yes | Numeric ID of the form that owns the integration. |
| `integration_id` | integer | Yes | Numeric ID of the integration to permanently remove. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Submission

**Slug:** `OPN_FORM_DELETE_SUBMISSION`

Permanently delete one submission from a form using both numeric IDs. This irreversible operation cannot be undone. Requires a personal access token with the forms-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `form_id` | integer | Yes | Numeric ID of the form that owns the submission. |
| `submission_id` | integer | Yes | Numeric ID of the submission to permanently delete. This cannot be undone. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Submissions

**Slug:** `OPN_FORM_DELETE_SUBMISSIONS`

Permanently delete 1-25 submissions from one form through sequential provider requests. This operation is irreversible and not atomic: confirmed earlier deletions are not rolled back. Processing continues after item-local invalid or not-found responses, but stops after authentication, permission, rate-limit, server, or ambiguous transport failures. Requires a personal access token with the forms-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `form_id` | integer | Yes | Numeric ID of the form that owns every submission. |
| `submission_ids` | array | Yes | Ordered unique IDs of 1-25 submissions to permanently delete. Each ID is deleted with a separate sequential provider request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Workspace

**Slug:** `OPN_FORM_DELETE_WORKSPACE`

Permanently delete a workspace and its contained resources. This irreversible operation cannot be undone and requires repeating the workspace ID as explicit confirmation. Requires a personal access token with the workspaces-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | integer | Yes | Numeric ID of the workspace to permanently delete. |
| `confirm_workspace_id` | integer | Yes | Repeat workspace_id to confirm permanent deletion of this workspace and its contained resources. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Current User

**Slug:** `OPN_FORM_GET_CURRENT_USER`

Return the name and email of the OpnForm user associated with the connected personal access token.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Form

**Slug:** `OPN_FORM_GET_FORM`

Retrieve a form by its public slug, including its complete field and layout definitions. Requires a personal access token with the forms-read ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `form_slug` | string | Yes | Public form slug returned by List Forms or Create Form. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Invite Workspace Member

**Slug:** `OPN_FORM_INVITE_WORKSPACE_MEMBER`

Add an existing OpnForm user to a workspace or email an invitation to a new user. Sending an invitation email cannot be undone. OpnForm Cloud requires a Pro plan and a personal access token with the workspace-users-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role` | string ("admin" | "user" | "readonly") | Yes | Workspace role to grant to the user. |
| `email` | string | Yes | Email address of the user to add or invite. |
| `workspace_id` | integer | Yes | ID of the workspace to add the member to. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Invite Workspace Members

**Slug:** `OPN_FORM_INVITE_WORKSPACE_MEMBERS`

Add or invite 1-10 users to one workspace through sequential provider requests. Each successful item may send an invitation email that cannot be undone, and the batch is not atomic. Processing continues after item-local validation failures but stops after authentication, permission, plan, rate-limit, server, or ambiguous transport failures. OpnForm Cloud requires a Pro plan and a personal access token with the workspace-users-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `members` | array | Yes | Ordered list of 1-10 users to add or invite. Each item may send an irreversible invitation email through a separate sequential request. |
| `workspace_id` | integer | Yes | ID of the target workspace. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Form Integrations

**Slug:** `OPN_FORM_LIST_FORM_INTEGRATIONS`

List webhook and Make integrations configured for a form, including IDs, status, and endpoint configuration. Requires a personal access token with the manage-integrations ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `form_id` | integer | Yes | Numeric ID of the form whose integrations to list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Forms

**Slug:** `OPN_FORM_LIST_FORMS`

Return one page of lightweight form summaries from a workspace. Pass the returned cursor back to continue; use Get Form for complete field definitions. Requires a personal access token with the forms-read ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | Continuation cursor from a previous response. Omit for the first page and pass it back unchanged to fetch the next page. |
| `per_page` | integer | No | Maximum form summaries to return in this page (1-100). |
| `workspace_id` | integer | Yes | ID of the workspace whose forms to list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Integration Events

**Slug:** `OPN_FORM_LIST_INTEGRATION_EVENTS`

Inspect past delivery attempts for one form integration, including the attempt date, Success or Error status, and a downstream HTTP status when available. Requires a personal access token with the manage-integrations ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `form_id` | integer | Yes | Numeric ID of the form that owns the integration. |
| `integration_id` | integer | Yes | Numeric ID of the integration whose delivery history to inspect. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Submissions

**Slug:** `OPN_FORM_LIST_SUBMISSIONS`

Return one searchable page of completed, partial, or all submissions for a form. Pass the returned cursor back unchanged to continue with the same filters. Requires a personal access token with the forms-read ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | Continuation cursor from a previous response. Omit for the first page and pass it back unchanged to fetch the next page with the same filters. |
| `search` | string | No | Optional text to match against submission field values. |
| `status` | string ("completed" | "partial" | "all") | No | Submission status to include. |
| `form_id` | integer | Yes | Numeric ID of the form whose submissions to list. |
| `per_page` | integer | No | Maximum submissions to return in this page (1-100). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Workspace Invites

**Slug:** `OPN_FORM_LIST_WORKSPACE_INVITES`

List pending and accepted invitations for a workspace where the connected user is an administrator. Requires a personal access token with the workspaces-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | integer | Yes | ID of the admin-accessible workspace whose invitations to list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Workspace Members

**Slug:** `OPN_FORM_LIST_WORKSPACE_MEMBERS`

List members of a workspace with their user IDs, names, emails, and workspace roles. Requires a personal access token with the workspace-users-read ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `workspace_id` | integer | Yes | ID of the workspace whose members to list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Workspaces

**Slug:** `OPN_FORM_LIST_WORKSPACES`

List workspaces accessible to the connected user, including IDs, plan tier, role flags, usage counts, enabled features, and plan limits. Requires a personal access token with the workspaces-read ability.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove Workspace Member

**Slug:** `OPN_FORM_REMOVE_WORKSPACE_MEMBER`

Remove a specified member from a workspace without deleting the member's OpnForm account. Requires a personal access token with the workspace-users-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | integer | Yes | ID of the member to remove; obtain it from List Workspace Members. |
| `workspace_id` | integer | Yes | ID of the workspace to remove the member from. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Resend Workspace Invite

**Slug:** `OPN_FORM_RESEND_WORKSPACE_INVITE`

Send another invitation email for an existing pending workspace invite. Each successful call sends an external email to the invite recipient and requires a personal access token with the workspace-users-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `invite_id` | integer | Yes | ID of the pending invite to resend. |
| `workspace_id` | integer | Yes | ID of the workspace that owns the invite. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Form

**Slug:** `OPN_FORM_UPDATE_FORM`

Replace or change an existing form's field definitions and settings using its numeric form ID. Requires a personal access token with the forms-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `form` | object | Yes | Complete provider-required form state plus any settings to change. Use Get Form first and pass its current required values to preserve existing state. The read-only id and slug fields are rejected. |
| `form_id` | integer | Yes | Numeric ID of the form to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Form Integration

**Slug:** `OPN_FORM_UPDATE_FORM_INTEGRATION`

Change a generic webhook integration's delivery URL or active status. Requires a personal access token with the manage-integrations ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string ("active" | "inactive") | No | Optional new delivery status; omit to leave the current status unchanged. |
| `form_id` | integer | Yes | Numeric ID of the form that owns the integration. |
| `webhook_url` | string | No | New HTTPS endpoint that will receive form submission events. |
| `integration_id` | integer | Yes | Numeric ID of the generic webhook integration to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Form Submission Retention

**Slug:** `OPN_FORM_UPDATE_FORM_SUBMISSION_RETENTION`

Change or disable a form's automatic submission-retention policy. Expired submissions are permanently deleted and cannot be restored; shortening the period can make existing submissions eligible for the next hourly cleanup. Requires a personal access token with the forms-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `form` | object | Yes | Complete provider-required form state. Use Get Form first and pass its current values so this retention update preserves fields and settings. |
| `form_id` | integer | Yes | Numeric ID of the form whose submission retention policy to change. |
| `retention_unit` | string | Yes | Calendar unit for retention, or null with retention_value=null to disable automatic deletion. |
| `retention_value` | string | Yes | Number of retention units before submissions are permanently deleted, or null with retention_unit=null to disable automatic deletion. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Workspace

**Slug:** `OPN_FORM_UPDATE_WORKSPACE`

Change a workspace's name and icon without affecting its membership or forms. Both values are required because OpnForm clears an omitted icon. Requires a personal access token with the workspaces-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `icon` | string | Yes | Workspace emoji or icon. Resubmit the existing value to preserve it, or pass an empty string to clear it; OpnForm clears omitted icons. |
| `name` | string | Yes | New workspace name. OpnForm requires it on every update. |
| `workspace_id` | integer | Yes | ID of the workspace to update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Workspace Member Role

**Slug:** `OPN_FORM_UPDATE_WORKSPACE_MEMBER_ROLE`

Change an existing workspace member's role to admin, user, or readonly. Requires a personal access token with the workspace-users-write ability.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role` | string ("admin" | "user" | "readonly") | Yes | New workspace role for the member. |
| `user_id` | integer | Yes | ID of the member whose role to change. |
| `workspace_id` | integer | Yes | ID of the workspace containing the member. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
