---
title: Fillout API Integration on Truto
slug: fillout
category: Survey
canonical: "https://truto.one/integrations/detail/fillout/"
---

# Fillout API Integration on Truto



**Category:** Survey  
**Status:** Generally available

## MCP-ready AI tools

Truto exposes 8 tools for Fillout that AI agents can call directly.

- **list_all_fillout_forms** — List all forms in your Fillout account. Returns each form's id and formId (the form's public ID).
- **get_single_fillout_form_by_id** — Get a single Fillout form's metadata by id, including all the questions in that form. Returns: id, name, questions, calculations, urlParameters, scheduling, payments, quiz, formId. Required: id.
- **create_a_fillout_form_submission** — Create new submissions for a Fillout form. Returns the created submissions including their submissionId and, where applicable, an editLink, with form-specific content. Required: form_id, submissions.
- **delete_a_fillout_form_submission_by_id** — Delete a submission of a Fillout form by id. Returns an empty 204 response on success. Required: id, form_id.
- **get_single_fillout_form_submission_by_id** — Get a single submission of a Fillout form by id. Returns the submission record including its submissionId and an editLink when includeEditLink is true, with form-specific content. Required: id, form_id.
- **list_all_fillout_form_submissions** — List all submissions for a Fillout form. Returns each submission's submissionId, plus editLink when includeEditLink is true. By default, only finished submissions are returned. Required: form_id.
- **create_a_fillout_webhook** — Create a webhook for a Fillout form so it starts receiving form submission events. Returns the created webhook's id, which is the identifier to pass when removing the webhook. Requires a JSON request body; see Fillout's Create a Webhook reference for its exact fields. Required: formId, url.
- **delete_a_fillout_webhook_by_id** — Remove a webhook from Fillout by id. Returns a success object; Fillout documents no fields in the response body. Required: webhookId.

## How it works

1. **Link your customer's Fillout account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Fillout.** The Proxy API is a 1-to-1 mapping of the Fillout API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Capture leads from Fillout into your CRM in real time** — CRM and sales platforms can let users route Fillout submissions directly into contact and lead records the moment a form is submitted, eliminating the need for third-party automation tools.
- **Ingest survey responses into customer success workflows** — Customer success and health-scoring platforms can pull NPS, QBR, and feedback responses from Fillout to update account health, trigger alerts, and surface customer sentiment natively.
- **Pull candidate submissions into your ATS** — Applicant tracking systems can display Fillout-based screening forms, code challenges, and scheduling preferences on candidate profiles without recruiters leaving the ATS.
- **Push enriched data back into Fillout as the source of truth** — Marketing automation and data enrichment tools can programmatically create Fillout submissions from their own capture channels, keeping Fillout as the canonical form database for ops teams.
- **Backfill historical form data on connection** — Analytics, BI, and reporting platforms can pull all past Fillout submissions when a user first connects their account, ensuring dashboards reflect complete historical context from day one.

## What you can build

- **Form picker with live schema preview** — Use list_all_fillout_forms and get_single_fillout_form_by_id to let users browse their forms and preview question structure before connecting.
- **Dynamic field mapping UI** — Read a form's questions and types via get_single_fillout_form_by_id to let users map Fillout fields to your internal schema with dropdowns instead of code.
- **Real-time submission streaming via webhooks** — Programmatically install listeners with create_a_fillout_webhook so new submissions flow into your product the instant they're captured, with clean teardown via delete_a_fillout_webhook_by_id.
- **Historical submission backfill** — Use list_all_fillout_form_submissions to ingest every past response on initial connection so your product has full history, not just forward-looking data.
- **Native submission detail view with edit deep-link** — Render individual responses via get_single_fillout_form_submission_by_id and expose the editLink so users can jump back into Fillout to amend a submission in one click.
- **Programmatic form pre-fill and record push** — Use create_a_fillout_form_submission to seed Fillout with known data from your platform, enabling pre-filled forms or synchronized record creation from external capture points.

## FAQs

### How do end users authenticate their Fillout account?

Truto handles the full Fillout auth flow for you — your users connect their account through a managed connection experience, and Truto manages token storage and refresh so you never touch credentials.

### Can we receive Fillout submissions in real time?

Yes. You can programmatically register webhooks on any form a user has connected using create_a_fillout_webhook, and Truto will relay submission events to your endpoint. Webhooks can be removed cleanly via delete_a_fillout_webhook_by_id.

### Can we read the structure of a form to build field mapping?

Yes. get_single_fillout_form_by_id returns the form's full schema including questions and their types, which is what you need to render a mapping UI between Fillout fields and your product's internal schema.

### Can we backfill historical submissions when a user first connects?

Yes. list_all_fillout_form_submissions lets you page through all existing submissions for a given form, so you can seed your database with historical data before switching to webhooks for live events.

### Can we push data into Fillout, not just read from it?

Yes. create_a_fillout_form_submission lets you programmatically create submissions in a user's Fillout form, which is useful for pre-fill flows, migrations, or pushing data captured elsewhere into Fillout as the source of truth.

### Can users edit or delete submissions from inside our product?

You can fetch a submission with get_single_fillout_form_submission_by_id and expose the editLink it returns to let users jump directly into Fillout to edit. For removals, delete_a_fillout_form_submission_by_id lets you delete a submission on the user's behalf.
