Automate Form Workflows
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 Function | Manual Process | Automated 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