All integrations

Jotform

MARKETING · MARKETING

Forms, their questions, submissions, uploaded files, and reports in the account they connected.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

jotform_delete_form_by_idWRITE

Delete a form via DELETE /form/{id}. Delete a form. Jotform moves a deleted form to the account's trash rather than purging it, so it can be restored from the Jotform dashboard for as long as the plan retains it -- but its submissions go with it and this integration offers no restore. Deleting a form the account still collects responses on stops that collection.

api
jotform_delete_form_by_id_question_by_qidWRITE

Delete a question via DELETE /form/{id}/question/{qid}. Remove one question from a form. Answers already submitted to that question stay in the form's submission records but the question stops being asked. Irreversible from here.

api
jotform_delete_form_by_id_webhooks_by_whidWRITE

Delete a webhook via DELETE /form/{id}/webhooks/{whid}. Remove one webhook from a form, named by the webhook id jotform_get_form_by_id_webhooks returns. The form stops forwarding submissions to that URL from the next submission onward; anything already delivered is gone and cannot be recalled. This is the compensating control for jotform_post_form_by_id_webhooks.

api
jotform_delete_label_by_idWRITE

Delete a label via DELETE /label/{id}. Delete a label. The forms and reports filed under it are NOT deleted -- they lose the label and stay in the account. Irreversible from here; recreate the label and re-add its resources to undo it.

api
jotform_delete_report_by_idWRITE

Delete a report via DELETE /report/{id}. Delete a report and the URL it is served at, so a link already shared stops working. The form and its submissions are untouched. This is the compensating control for report creation.

api
jotform_delete_submission_by_idWRITE

Delete a submission via DELETE /submission/{id}. Delete one submission and the answers it carries. Jotform moves it to the form's trash rather than purging it, so it can be restored from the Jotform dashboard; this integration offers no restore. Files uploaded with the submission go with it.

api
jotform_get_form_by_idREAD

Get a form via GET /form/{id}. Retrieve one form's details by id: title, status, created and updated times, submission count, last submission, the form's public URL and its owner. Changes nothing in the account.

api
jotform_get_form_by_id_filesREAD

List a form's uploaded files via GET /form/{id}/files. List every file respondents have uploaded through this form, each with the submission it came from, the question that collected it and its download URL. Changes nothing in the account.

api
jotform_get_form_by_id_propertiesREAD

Get a form's properties via GET /form/{id}/properties. Retrieve every property of a form: title, height, fonts, colours, submission limits, thank-you behaviour, redirect URL and the rest of Jotform's form-property vocabulary. Changes nothing in the account.

api
jotform_get_form_by_id_properties_by_keyREAD

Get one form property via GET /form/{id}/properties/{key}. Retrieve a single named property of a form -- `key` is a Jotform property name such as fontsize, thankurl, activeRedirect, limitSubmissions or hideMailEmptyFields, not a credential. Changes nothing in the account.

api
jotform_get_form_by_id_question_by_qidREAD

Get one question via GET /form/{id}/question/{qid}. Retrieve a single question on a form by its question number, with its control type, label, slug, order and control-specific settings. Changes nothing in the account.

api
jotform_get_form_by_id_questionsREAD

List a form's questions via GET /form/{id}/questions. Retrieve every question on a form, keyed by question number, each with its control type, label, slug, order and control-specific settings. These question numbers are what a submission's answers are keyed by, so this is the call to make before writing one. Changes nothing in the account.

api
jotform_get_form_by_id_reportsREAD

List a form's reports via GET /form/{id}/reports. List the reports built from one form's submissions, each with its id, title, type and URL. Changes nothing in the account.

api
jotform_get_form_by_id_submissionsREAD

List a form's submissions via GET /form/{id}/submissions. List the submissions made to one form, each with its id, submission time, respondent IP, read and flagged markers and every answer keyed by question number. `limit` and `offset` page through them, `orderby` sorts by id, username, title, status, created_at, updated_at, new, count or slug, and `filter` is a JSON string Jotform evaluates server-side. Changes nothing in the account.

api
jotform_get_form_by_id_webhooksREAD

List a form's webhooks via GET /form/{id}/webhooks. List the webhook URLs a form posts its submissions to, keyed by webhook id. Use it to audit where a form's submissions are already being forwarded before adding another destination, and to find the id the webhook delete needs. Changes nothing in the account.

api
jotform_get_label_by_idREAD

Get a label via GET /label/{id}. Retrieve one label by id: its name, colour, order, owner and parent. Changes nothing in the account.

api
jotform_get_label_by_id_resourcesREAD

List a label's forms and reports via GET /label/{id}/resources. List the forms and reports filed under one label, each with its id and type. Changes nothing in the account.

api
jotform_get_report_by_idREAD

Get a report via GET /report/{id}. Retrieve one report's details by id: its title, type, the form it draws from, its settings and its URL. Changes nothing in the account.

api
jotform_get_submission_by_idREAD

Get a submission via GET /submission/{id}. Retrieve one submission by its own id, with its form, submission time, respondent IP, read and flagged markers and every answer keyed by question number. Changes nothing in the account.

api
jotform_get_system_plan_by_plannameREAD

Get a plan's limits via GET /system/plan/{planName}. Retrieve the limits and prices of one Jotform plan by name -- FREE, BRONZE, SILVER, GOLD or PLATINUM -- including its submission, upload, form-count and daily API-call ceilings. Read the account's own plan name from jotform_get_user (`account_type`) and its consumption from jotform_get_user_usage. The only operation on this API that needs no credential. Changes nothing in the account.

api
jotform_get_userREAD

Get account details via GET /user. Retrieve this Jotform account's own details: username, name, email, website, time zone, account type, status, region and whether it is verified. The reply also carries `limit-left`, how many of today's API calls remain on this key. This is the endpoint the connect-time probe uses. Changes nothing in the account.

api
jotform_get_user_formsREAD

List forms via GET /user/forms. List the forms this account owns, with each form's id, title, status, creation and update times, submission count and URL. `limit` and `offset` page through them, `orderby` sorts by id, username, title, status, created_at, updated_at, new, count or slug, and `filter` is a JSON string Jotform evaluates server-side. This is where form ids come from. Changes nothing in the account.

api
jotform_get_user_historyREAD

Get account activity history via GET /user/history. Retrieve this account's activity log: form creations and updates, submissions, logins, API key creation and deletions. `action` narrows it to one of all, userCreation, userLogin, formCreation, formUpdate, formDelete or formPurge, `date` to one of lastWeek, lastMonth, last3Months, last6Months or lastYear, `startDate` and `endDate` to a custom window, and `sortBy` orders it ASC or DESC. Changes nothing in the account.

api
jotform_get_user_labelsREAD

List labels via GET /user/labels. List this account's labels -- Jotform's replacement for the retired folder feature -- each with its id, name, colour and parent. `addResources` asks Jotform to include each label's forms and reports inline; the ledger marks it required and it is not, measured 2026-09-24. Changes nothing in the account.

api
jotform_get_user_reportsREAD

List all reports via GET /user/reports. List every report this account has created across all of its forms, with each report's id, title, type and the form it draws from. Changes nothing in the account.

api
jotform_get_user_settingsREAD

Get account settings via GET /user/settings. Retrieve the account's settings: name, email, company, website, time zone, industry, security question and account status. Changes nothing in the account.

api
jotform_get_user_submissionsREAD

List all submissions via GET /user/submissions. List submissions across every form this account owns, newest first by default. `limit` and `offset` page through them, `orderby` sorts by one of id, form_id, IP, created_at, status, new, flag or updated_at, and `filter` is a JSON string Jotform evaluates server-side (for example {"created_at:gt":"2026-01-01"}). Changes nothing in the account.

api
jotform_get_user_subusersREAD

List sub-users via GET /user/subusers. List the sub-user accounts that share this account's forms, and what each may reach. Requires a plan that includes sub-users: measured 2026-09-24 a Starter (FREE) account answers 401 "User is not Allowed" here, which is the plan speaking and not a bad key -- the plan's own `subusers` limit is 1, the account holder alone. Changes nothing in the account.

api
jotform_get_user_usageREAD

Get monthly usage via GET /user/usage. Retrieve this month's usage counters for the account: submissions, SSL submissions, mobile submissions, payments, form views, form count, upload bytes, signed documents and AI conversations. Compare them against jotform_get_system_plan_by_planname for the plan's ceilings. Changes nothing in the account.

api
jotform_post_formWRITE

Create a form (alternate path) via POST /form. Create a new Jotform form -- the same operation as jotform_post_user_forms, which Jotform publishes under a second path. `questions` is keyed by question number and `properties.title` is required. The `emails` notification block is not available through this integration. Measured 2026-09-24, this endpoint answered 401 on a Starter account with 0 of 5 forms used, so the account's own plan or state may refuse it.

api
jotform_post_form_by_id_cloneWRITE

Clone a form via POST /form/{id}/clone. Copy a form, with its questions and properties, into a new form owned by the same account. Returns the new form's id. Submissions are NOT copied. Takes no body.

api
jotform_post_form_by_id_propertiesWRITE

Update a form's properties via POST /form/{id}/properties. Add or change form properties. `activeRedirect` decides what a respondent sees after submitting -- `default` for Jotform's thank-you message, `thanktext` for custom text or `thankurl` to send them to another page -- and `formWidth` and `labelWidth` resize the form. A partial update: properties the body does not name are left as they are.

api
jotform_post_form_by_id_question_by_qidWRITE

Update a question via POST /form/{id}/question/{qid}. Change one question's properties -- its label, position or data slug -- leaving the rest of the form alone. A partial update: only the properties named in `question` are written.

api
jotform_post_form_by_id_questionsWRITE

Add a question to a form via POST /form/{id}/questions. Append a question to a form. `question.type` is a Jotform control name (control_textbox, control_dropdown, control_fileupload and the rest), and `text`, `order` and `name` set its label, position and data slug. Returns the created question with its new question number.

api
jotform_post_form_by_id_reportsWRITE

Create a report via POST /form/{id}/reports. Build a report from a form's submissions: `title` names it and `list_type` picks the kind -- csv, excel, grid, table or rss. `fields` selects the columns by question id, plus `ip` for the respondent's address and `dt` for the submission date. THE REPORT GETS ITS OWN URL, which is how Jotform shares one, so treat the reply's URL as publishable rather than private; jotform_delete_report_by_id removes it again.

api
jotform_post_form_by_id_submissionsWRITE

Add a submission to a form via POST /form/{id}/submissions. Record a submission against a form as if a respondent had filled it in. Answers go under `submission`, keyed by the question numbers jotform_get_form_by_id_questions returns; a question with sub-fields takes an object of them. Counts against the account's monthly submission allowance, and any notification the form is configured to send will fire.

api
jotform_post_form_by_id_webhooksWRITE

Add a webhook to a form via POST /form/{id}/webhooks. Register a URL that Jotform POSTs every future submission of this form to. READ THE PAYLOAD BEFORE CHOOSING THE DESTINATION: what is sent is whatever the form collects, from the people who fill it in -- names, email addresses, uploaded files, and on a HIPAA-plan account health information -- and those respondents are third parties who cannot see where their answers were forwarded. The rule fires on every submission from now on, with no further call, so point it only at a host the account owner controls. `jotform_get_form_by_id_webhooks` lists what a form already has and `jotform_delete_form_by_id_webhooks_by_whid` removes one.

api
jotform_post_labelWRITE

Create a label via POST /label. Create a label for organising forms and reports. `name` is required; `color` is a hex triplet and `parent` nests this label under another. Jotform picks a colour when none is given.

api
jotform_post_submission_by_idWRITE

Update a submission via POST /submission/{id}. Change a submission: rewrite answers under `submission` keyed by question number, set `submission.flag` to '1' to flag it, or set `submission.new` to '0' to mark it read. A partial update -- fields the body does not name are left alone.

api
jotform_post_user_formsWRITE

Create a form via POST /user/forms. Create a new Jotform form from its questions and properties. `questions` is keyed by question number and each entry names a Jotform control type; `properties.title` is required. The `emails` notification block Jotform also accepts here is NOT available through this integration: it names an agent-chosen recipient and fires on every future submission. Set up notifications in the Jotform form builder. Measured 2026-09-24, this endpoint answered 401 on a Starter account with 0 of 5 forms used, so the account's own plan or state may refuse it.

api
jotform_post_user_settingsWRITE

Update account settings via POST /user/settings. Change this Jotform account's profile: display name, company, website, time zone and industry. Three fields Jotform also accepts here are NOT available through this integration -- `email`, `securityQuestion` and `securityAnswer` -- because together they are the account's password-recovery path, and moving it would move control of the account and of every future API key minted for it. Change those in Jotform's own account settings.

api
jotform_put_formWRITE

Create forms from a form document (alternate path) via PUT /form. Create forms from a whole `formContent` document -- the same operation as jotform_put_user_forms under Jotform's second path. The `formContent.emails` notification block is not available through this integration. Measured 2026-09-24, this endpoint answered 401 on a Starter account with 0 of 5 forms used.

api
jotform_put_form_by_id_propertiesWRITE

Replace a form's properties via PUT /form/{id}/properties. Write a form's properties as a whole, under the `formProperties` key. This is the bulk counterpart of the partial property update; read the current set with jotform_get_form_by_id_properties first, because anything the body omits is not preserved.

api
jotform_put_form_by_id_questionsWRITE

Replace a form's questions via PUT /form/{id}/questions. Write a form's questions as a whole, keyed by question number, under the `questions` key. This is the bulk counterpart of adding questions one at a time; read the current set with jotform_get_form_by_id_questions first, because anything the body omits is not preserved.

api
jotform_put_form_by_id_submissionsWRITE

Write submissions in bulk via PUT /form/{id}/submissions. Write submission data for a form as a whole, under the `submission` key, keyed by question number. The bulk counterpart of adding submissions one at a time; the same allowance and the same notifications apply.

api
jotform_put_label_by_idWRITE

Update a label via PUT /label/{id}. Rename a label, recolour it or move it under a different parent. The body is the flat set of fields to change -- the ledger records a `property` wrapper that Jotform answers 400 "No parameters." to.

api
jotform_put_label_by_id_add_resourcesWRITE

Add forms or reports to a label via PUT /label/{id}/add-resources. File forms and reports under a label, each named by its id and its type (FORM or REPORT). Adding a resource that is already there is not an error. A bare array is refused -- the resources go under the `resources` key.

api
jotform_put_label_by_id_remove_resourcesWRITE

Remove forms or reports from a label via PUT /label/{id}/remove-resources. Take forms and reports out of a label, each named by its id and its type (FORM or REPORT). Removes only the filing: the form or report itself is untouched.

api
jotform_put_user_formsWRITE

Create forms from a form document via PUT /user/forms. Create one or more forms from a whole `formContent` document -- questions, properties and layout in a single object, which is how Jotform's own exports are shaped. The `formContent.emails` notification block is not available through this integration. Measured 2026-09-24, this endpoint answered 401 on a Starter account with 0 of 5 forms used.

api

Put Jotform behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.