Most FormSmarts functions customers rely upon on a daily basis can be automated using APIs and webhooks.

Mapping FormSmarts Functions to Automated Processes

We've listed in this table some of the core FormSmarts features you probably already use, and mapped them to a solution to automate the corresponding process.

Online Form FunctionManual ProcessAutomated Solution

Get a Push Notification for Individual Form Submissions

Set up FormSmarts to send an email to one or more team members when a form is submitted Set up a form submission webhook

Find a Form Submission

Look up the form response with the Data Search tool Write code to find the form entry with the Search API

Access an Individual Form Submission

View the form entry online or download it as a PDF document Write simple code to retrieve the form submission or get a PDF document with the Form Response API

View or Download Form Attachments

View or download uploaded documents online or via the link in the email notification Download form attachments with the Form Response API or a webhook

Export Form Entries Submitted Between Two Dates

Create an Excel report with the Report Generator Write code to get form responses submitted between two dates with the Form Responses by Dates API

Submit a Form

Allow individuals to submit the form online Write code to submit the form automatically with the Form Submission API

The FormSmarts API & Webhook Client

The FormSmarts API client lets you quickly automate your form workflows with a simple and intuitive Python interface. Here is a short code example:

from formsmarts_api import APIAuthenticator, FormEntry
auth = APIAuthenticator('my_acc_id', 'my_api_key')
entries = FormEntry.search_by_dates(auth, form_id='lqh', start_date='2025-05-05')
for e in entries:
    if e.fields_by_name('Contact me to discuss my needs')[0].value:
        e.add_tag('review')
        e.share('manager@example.com')
    if e.fields_by_name('Subscribe to the monthly newsletter')[0].value:
        mailing_list.add(e.fields_by_type('email')[0].value)

We also maintain a basic Node.js client that currently only covers API and webhook authentication.

API Client for Python

The FormSmarts Webhook & API Client for Python allows FormSmarts members to search, access and edit form submissions and any attachments (uploaded files). It supports the following functions:

API

  • API authentication
  • Search form submissions FormEntry.search()
  • Retrieve form responses submitted between two dates FormEntry.search_by_dates()
  • Get an individual form submission FormEntry.fetch()
  • Share a form submission FormEntry.share()
  • Download an individual form submission as a PDF FormEntry.download_pdf()
  • Download a form attachment Upload.download()
  • Submit a form FormEntry.submit()
  • Upload a form attachment Upload.upload()
  • Replace a form attachment Upload.replace()
  • Amend a form submission Field.value = 'new value'
  • List tags and system tags FormEntry.tags(), FormEntry.system_tags()
  • Get the Reference Number of a form entry FormEntry.reference_number
  • Find the date & time a form was submitted FormEntry.date_submitted
  • Get the ID of the form FormEntry.form_id
  • Get the name of form FormEntry.form_name
  • Access the submission context of a form entry FormEntry.context
  • Get details of the payment associated with of a form entry FormEntry.payment
  • Add a tag to form response FormEntry.add_tag()
  • Iterate over input fields FormEntry.fields
  • Retrieve input fields by type FormEntry.fields_by_type['email']
  • Lookup input fields by name FormEntry.fields_by_name['Address']
  • Access input fields by Field ID FormEntry.field_by_id[12345]
  • Get the value of an input field Field.value
  • Get the name of a field Field.name
  • Get the datatype of a field Field.type
  • Get the ID of a field Field.id

Webhook

  • Authenticate a webhook request WebhookAuthenticator.verify_request()
  • Create a FormEntry object from a webhook callback FormEntry.create()
  • Access all properties of the form entry with the FormEntry object (same as the API)
  • Get the amount due associated with the form entry WebhookEntry.amount_due