Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Fillout

Scalekit connector
Open markdown

The Fillout connector lets your AI agent act in each user's Fillout account. Each user connects their own Fillout access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 6 tools.

Tools
6
What they doRead · write · destructive
4 · 1 · 14 read1 write1 destructive
Users sign in with

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Fillout connection

    In AgentKit > Connections, create a Fillout connection. The name you give it is the connection_name your code passes. See Configure connections.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'fillout'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Fillout:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'fillout_forms_list',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their Fillout credentials there. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • fillout_form_getGet one Fillout form's metadata by its public ID.Read-only

    Get Form

    Get one Fillout form's metadata by its public ID. Returns id, name and questions (each with id, name and type), plus calculations, URL parameters, scheduling fields, payment fields and quiz settings when the form uses them. Use fillout_form_get to learn a form's question IDs before reading or creating submissions. Use fillout_forms_list to find the form ID.

    Inputs

    form_idstringrequired
    Public ID of the form, as returned in formId by fillout_forms_list. Example: "foAdHjd1Duus".
  • fillout_forms_listList every form in the connected Fillout account.Read-only

    List Forms

    List every form in the connected Fillout account. Returns an array of forms, each with its formId (public ID) and name. Use fillout_forms_list to find a form ID. Use fillout_form_get for a form's questions and other metadata.

    Inputs

    This tool takes no inputs.

  • fillout_submission_getGet one submission of a Fillout form by its submission ID.Read-only

    Get Submission

    Get one submission of a Fillout form by its submission ID. Returns submission with submissionId, submissionTime, lastUpdatedAt and question answers, plus calculations, URL parameters, scheduling, payments, quiz and login data when present. Use fillout_submission_get when you have the submission ID. Use fillout_submissions_list to browse or search a form's submissions.

    Inputs

    form_idstringrequired
    Public ID of the form the submission belongs to, as returned in formId by fillout_forms_list. Example: "foAdHjd1Duus".
    submission_idstringrequired
    ID of the submission, as returned in submissionId by fillout_submissions_list. Example: "abc123-def456".
    include_edit_linkboolean
    Set to true to add an editLink to the submission, a URL where it can be edited.
  • fillout_submissions_listList submissions for one Fillout form, with optional date range, status, text search, sort order and offset pagination.Read-only

    List Submissions

    List submissions for one Fillout form, with optional date range, status, text search, sort order and offset pagination. Returns responses (each with submissionId, submissionTime, lastUpdatedAt and question answers, plus calculations, URL parameters, scheduling, payments, quiz and login data when present), totalResponses and pageCount. Use fillout_submissions_list to browse or search a form's submissions. Use fillout_submission_get when you already have a submission ID. Get the form ID from fillout_forms_list first.

    Inputs

    form_idstringrequired
    Public ID of the form whose submissions to list, as returned in formId by fillout_forms_list. Example: "foAdHjd1Duus".
    after_datestring
    Only return submissions submitted after this ISO 8601 date-time. Example: "2024-05-01T00:00:00.000Z".
    before_datestring
    Only return submissions submitted before this ISO 8601 date-time. Example: "2024-06-01T00:00:00.000Z".
    include_edit_linkboolean
    Set to true to add an editLink to each submission, a URL where the submission can be edited.
    include_previewboolean
    Set to true to also return preview submissions, which were made while previewing the form in the Fillout editor.
    limitinteger
    Maximum number of submissions to return in this page, from 1 to 150. Fillout uses 50 when omitted. Example: 100.
    offsetinteger
    Zero-based position to start from, for paging through results. Fillout uses 0 when omitted. To get the next page, add the limit to the previous offset (for example offset 50 with limit 50 gives the second page); pageCount in the response tells you how many pages exist.
    searchstring
    Only return submissions whose answers contain this text. Example: "jane@example.com".
    sortstring
    Sort order by submission time: "asc" (oldest first) or "desc" (newest first). Fillout uses "asc" when omitted.one of ascdesc
    statusstring
    Which submissions to return: "finished" (completed submissions) or "in_progress" (started but not yet submitted). Fillout returns only finished submissions when omitted.one of finishedin_progress
  • fillout_submissions_createAdd up to 10 new submissions to a Fillout form in one call, as if respondents had filled it in.Write

    Create Submissions

    Add up to 10 new submissions to a Fillout form in one call, as if respondents had filled it in. Returns submissions, the created submissions with their new submissionId, submissionTime and answers. Use fillout_submissions_create to import or record responses. Use fillout_submissions_list to read existing ones. Call fillout_form_get first to get the form's question IDs.

    Inputs

    form_idstringrequired
    Public ID of the form to add submissions to, as returned in formId by fillout_forms_list. Example: "foAdHjd1Duus".
    submissionsarrayrequired
    The submissions to create, from 1 to 10. Each submission needs a questions list that pairs a question ID (from fillout_form_get) with the answer value for that question. Each one can also carry URL parameter values (id, name, value), a submissionTime and lastUpdatedAt as ISO 8601 date-times, scheduling and payment answers, and a login object with the respondent's verified email. Example: [{"questions": [{"id": "5mJ9", "value": "Jane Doe"}, {"id": "kPq2", "value": "jane@example.com"}], "urlParameters": [{"id": "utm_source", "name": "utm_source", "value": "newsletter"}], "submissionTime": "2024-05-01T12:00:00.000Z"}].
  • fillout_submission_deletePermanently delete one submission from a Fillout form.Destructive

    Delete Submission

    Permanently delete one submission from a Fillout form. Returns an empty success response; the submission cannot be recovered. Use fillout_submission_delete to remove a single submission. Use fillout_submission_get first to confirm it is the right one.

    • Idempotent

    Inputs

    form_idstringrequired
    Public ID of the form the submission belongs to, as returned in formId by fillout_forms_list. Example: "foAdHjd1Duus".
    submission_idstringrequired
    ID of the submission to delete, as returned in submissionId by fillout_submissions_list. Example: "abc123-def456". Deletion is permanent.