BeeSection BeeSection

Forms and questionnaires: from template to statistics

Job application replies in DMs, paper questionnaires, "how did you hear about us" asked out loud. The form builder gathers all of it in one section - a link or widget for your site, responses with statuses, and statistics for every question.

BeeSection · · 8 min read
Read in another language: Русский Українська

A salon is looking for a nail technician. The job ad sits in the feed, replies arrive in DMs mixed in with bookings, and resumes come as files that are impossible to find a week later. In parallel, the administrator asks every new client "how did you hear about us" and never writes the answer down anywhere. Both tasks are solved by the same form, sent out as a link.

Where it is in the CRM

  • Forms: Promotion → Forms. The section is available on the Salon and Network plans.
  • Inside a form there are tabs: Questions, Settings and Notifications. Next to each form in the list: Responses, Stats, Share, Duplicate, Publish.

Templates and the builder

A form can be built from scratch or from one of four templates: Job application, Client review, Staff survey, Service request. A template is a ready-made set of questions with translations, and you can change anything in it.

A form's purpose is not just a label in the list. A request creates a lead: the system looks for a field of type phone or email among the answers and creates a lead with all the answers in the description. If a request has no contact at all, there will be no lead — there is nothing to call. A review does not create a lead, but it does count toward the average rating. The purpose is set on creation and never changes afterward: for a form with a hundred responses, changing the type would mean the accumulated statistics suddenly meant something else.

Question types: text line, phone, email, long text, dropdown list, single choice, multiple choice, checkbox, consent, star rating, 0–10 scale, date, time, date and time, number, link, file, hidden field. Plus layout elements — heading, subheading, paragraph, divider: these are not saved into responses, so an export is not half made of layout.

A form can be split into steps and translated: settings hold a main language and a list of form languages, and an empty translation falls back to the main language's text. A field's name is written in Latin letters — it is exactly what ends up in exports and webhooks.

Outside the CRM a form is not identified by its number but by a 32-character token: a number can be guessed, a token can be revoked. The address looks like forms.beesection.com/f/<token>.

The Share button gives you three things: the link itself, a ready-made <script> line to paste into your site, and an iframe option. The same place holds allowed domains: while the list is empty, the widget works on any site; once you fill it in, a copied widget on someone else's site stops sending responses to your salon. Issue a new link is for exactly one situation — the link ended up in the wrong hands: the old address stops working immediately, along with every copy of the widget.

When a form accepts responses

There are four conditions, and any one of them is enough to stop accepting responses: the form is published and enabled, the Opens at date has arrived, Closes after has not passed, and the response limit has not been reached. A visitor on the page does not just see "the form is closed" — they see the reason, and that is a different situation for someone who is a day late than for an owner who forgot to click Publish.

Spam does not count toward the response limit: otherwise a hiring form would close after ten bots, not ten real applicants.

Bot protection

By default there is a hidden honeypot: the markup has a field a human does not see and does not fill in. Timing is checked alongside it — a form submitted less than three seconds after opening was not filled in by a person. Alternatives: Google reCAPTCHA (needs keys and a third-party script on the page) or no protection at all — for internal questionnaires shared over an undisclosed link.

Signals add up into a score: a filled-in honeypot is a hundred points, filling in too fast is forty, three or more links in the answers is forty, a sixth response from the same address within an hour is thirty. From sixty points up, a response is marked as spam. It does not disappear: it is kept, visible in the section, and can be returned to normal. But there will be no notifications, webhooks or lead created for spam.

What to do with responses

A response has five states: new, read, processed, spam, archived. Spam is hidden from the list by default — a section that opens to thirty bots and three real people stops getting opened. You can leave a note on any response ("call back after 6pm"), and you can see who changed the state and when.

Files attached to a response (a resume, a photo of the work) are accepted before the form is submitted — so a slow connection does not drop everything together with the typed text. The default size limit is 10 MB, and it can be changed in the form's settings. A file that never made it into a submission lives for a day and is then removed. Exporting responses to CSV is done by the browser itself, from the list you currently see on screen.

Who to notify about a new response

There can be several recipients, each with their own channel — email or Telegram. There is a separate checkbox, Send spam too. The message body contains the response's heading, up to the first six answers, and a link into the CRM: a notification is a reason to open the section, not a copy of the questionnaire. An error with one recipient does not block the rest.

The Send a test button sends a trial notification based on the form's last response — so until there is at least one response, there is no way to test the setup.

Webhooks have no screen in the dashboard — they are configured through the API. Only https addresses are accepted, internal addresses are rejected, the body is signed with HMAC-SHA256 in the X-Webhook-Signature header, and delivery goes through a queue with a 15-second limit for the other server's response.

Statistics and versions

Statistics are counted from page events, not from responses: the responses tell you "forty applications" but not that the form was opened four hundred times. That is why the funnel tracks opens, starts, submissions and drop-offs. Conversion is the share of those who submitted out of everyone who opened; completion is the share of those who submitted out of those who started. Beyond that: average time to fill in, a chart by day, a breakdown by step (exactly where people leave) and by question — how many answered, the average for ratings and scales, and the distribution across options.

Versions are created automatically, under one rule: while nobody has answered a form, edits land in place; the moment the first response appears, the next edit creates a new version, and the old one stays with its own responses. That is why last year's response is always shown with the question wording that was in use at the time. An old version can be restored, but a version that has responses cannot be deleted.

What to do

Start from a template and cut unnecessary questions rather than adding your own: completion drops as a form gets longer, and the per-step statistics will show it first. Set up at least one notification recipient right away — a form without one collects responses that nobody finds out about. And do not edit a published form over something minor: every such edit after the first response creates a new version in the history.

Was this article helpful?

Related articles

Comments

No comments yet. Ask your question — we answer within a day.

Leave a comment

Your email is not published. We use it only to answer you.