Custom Forms
Collect structured requests — refunds, warranty claims, applications, intake — with reusable forms the AI fills in conversationally.
Custom Forms#
Custom Forms collect structured requests that are not ordinary leads, bookings, or orders — a refund, a warranty claim, an application, or project intake. You define the fields once. The agent collects them in conversation and submits the form only when the required fields are complete and AlonChat stores the submission.
Find them under Agent Studio → Tools → Custom Forms.
A submitted form is not a confirmed booking, a paid order, or an approved refund. If the customer is trying to reserve a specific time, use Booking instead.
Creating a Form#
| Step | What you do |
|---|---|
| 1 | Open Custom Forms and click New form. |
| 2 | Name it and write When to use, so the agent knows when to start. |
| 3 | Add header fields. Mark the ones that must be collected. |
| 4 | Optionally add a repeatable group for line items, such as products or attendees. |
| 5 | Choose a Google Sheet if you want a copy of each row. |
| 6 | Choose who to notify after a form is saved. |
| 7 | Save & publish, then turn the form on. |
Recent submissions stay on the form even when Sheets is not connected. A sheet or webhook is an optional copy, not the submission itself.
Fields#
| Type | Use for |
|---|---|
| Text / Long text | Names, descriptions, notes |
| Email / Phone / URL | Contact details and links |
| Number | Quantities, amounts, reference numbers |
| Date | When something happened or is needed |
| Dropdown / Radio | A fixed set of options |
| Yes/No | A simple confirmation |
| Image / File | Receipts, photos, documents |
Repeatable groups collect several rows of the same kind, such as claim items, without putting them in a single note. Flat forms keep working if you do not add a group.
The agent asks conversationally, checks the answer, and does not submit while a required field is still missing.
Where Submissions Go#
| Destination | When it happens |
|---|---|
| AlonChat | The submission is stored when the form is submitted. This is the record that counts |
| Google Sheets | Optional. One row is appended when logging is enabled and a worksheet is chosen |
| Webhook | A custom_form.submitted event is sent to project webhooks that subscribe to it |
| Team notification | Optional. After a custom form is submitted routes the saved form to the people you choose |
Sheets logging needs a connected workbook. If that worksheet is already used by another form, pick a different tab when the rows should stay separate. Webhook setup is covered in Webhook events.
Confirmation and Failure#
| What happened | What to tell the customer |
|---|---|
| Required fields are still missing | Ask for those fields. Do not say the form was submitted |
| AlonChat stored the submission | The request was submitted. Say what your team will do next, not that it is approved |
| The submit fails | The form was not submitted. Ask them to try again |
| They wanted a reserved time | Do not treat the form as a confirmed appointment |
Example#
Customer: I want to return a product I bought last week.
Agent: I can take the return request. What's the order number?
Customer: 10432
Agent: What's the reason for the return?
Customer: Wrong size
Agent: Could you attach a photo of the item?
Customer: [uploads photo]
Agent: Your return request has been submitted. The team will review it.
The last line fits only after the submission is stored. The photo and answers alone are not a submission, and "submitted" does not mean the refund was approved.