Conversational forms (chat-style capture)
Build a form that asks questions one by one in a chat widget on your site; on completion, the CRM creates a lead automatically.
A conversational form is a chat widget that asks one question at a time (name, email, phone, company and free/choice questions) and collects the answers from your website visitor. On completion, the CRM creates a Lead automatically with source "conversational_form", following the same pattern as website form capture.
It is built by us: no external account and no cost. The form is served by a snippet you paste on your site; the URL token only identifies the form (it is public, not a secret).
Step 1: build the questions
- Open Settings → Conversational forms and click create (or edit an existing one).
- Name the form and add questions. Each question has a text, a type (text, email, phone, long text, choice or consent) and an optional mapping to a lead field (name, email, phone, company, message).
- Include at least one question mapped to email or phone, since that is what allows creating the lead.
- Use ↑/↓ to order the questions and mark "Required" when the visitor must answer.
Consent (privacy)
To ask for consent, add a "Consent" question and mark it as required. The text is free, so write your own privacy policy. If the visitor does not accept, the lead is NOT created. This way you respect the privacy laws applicable to your audience.
Field types
Each question can use a rich input type: short or long text, email, phone, number, currency, date, time, date and time, dropdown, multiple choice, checkbox, single choice, star rating, NPS (0 to 10) and hidden field. When you link a question to an object field, the type is suggested automatically from the field type (you can change it). You can also add "Section / text" blocks that only show a title and some text, without asking for an answer, to organize long forms.
Validation
Under "More", each question accepts validation rules: required, minimum and maximum (for numbers, rating and NPS), minimum and maximum length (for text), and a pattern (regular expression) with your own message when it does not match. Validation runs both in the visitor browser and on the server, so invalid answers never create an incomplete record.
Conditional logic (show/hide)
You can show a question only when an earlier one has a specific answer. Under "More", choose "Show when" [question] [operator] [value] (is equal to, is not, contains, is greater than, is less than, is empty, is filled in). Questions appear and disappear in real time as the visitor answers; a hidden question is never required and its answer is not saved. The condition can only look at PREVIOUS questions (no cycles).
URL prefill and hidden fields
Any question can be prefilled from a parameter in the form URL: set "Prefill from URL parameter" (e.g. email) and a link like ...?email=ana@x.com starts with the field filled in. A hidden field (with a required parameter) does not appear to the visitor but stores the value in the record, ideal for capturing source/UTM (utm_source, ref). URL prefill never bypasses validation of required fields.
Appearance and theme
In the "Appearance" section you customize the form page: theme (light, dark or automatic, which follows the visitor's system), accent color (used on the button and highlights), logo and cover by URL, corner rounding, font (system or serif), your own title and subtitle, and the submit button label. Images only accept addresses starting with http:// or https://; text is shown as plain text. With nothing set, the form keeps the default look.
After submit
In "After submit" you choose what happens when the visitor completes the form: show your own thank-you message, or redirect to a page of yours (for example a thank-you page). It is one OR the other; the redirect only accepts http:// or https:// addresses. If you set nothing, the default thank-you message appears.
Notifications, webhook and automation
In the "Notifications & automation" section you connect the form to the rest of your operation. Under "Notify by email", list the internal emails (comma separated) that should get a "new submission" notice with the answers as soon as someone submits; each person receives it in their own language. Under "Webhook (URL)", enter an http/https address that will receive a POST on every submission, with the answers as JSON. That POST is signed (HMAC-SHA256) in the x-sellio-signature header, the same format as the other CRM webhooks; use the "Webhook secret" shown on screen to verify the signature on your server. Everything is best-effort: an email or webhook failure never breaks the submission nor prevents the record from being created.
Record ownership is already distributed round-robin across the team. Under "Trigger automation", you can also point an automation of the object to run on the just-created record; "when created" automations already run on their own, with no need to point them here.
Under "Campaign", link the form to a CRM campaign. From then on, each submission is automatically added as a member of that campaign, and the form appears as an asset of the campaign in the campaign hub (Marketing, Attribution tab), alongside landing pages, posts, CTAs, and ads. This gathers, in one place, everything an initiative produced and how much it influenced revenue.
Anti-spam
The form is protected out of the box. An invisible honeypot field is always on: humans do not see it, but bots tend to fill it in, and when they do the submission is silently discarded. You can also turn on the anti-bot check (Cloudflare Turnstile), which shows a discreet challenge and is verified on the server (it works when the key is configured on the platform; if not, it is ignored without getting in the way). On top of that, a per-minute submission limit per origin/IP is always on to curb abuse. Consent is still honored: if you require opt-in and the visitor does not accept, nothing is created.
In "Consent & privacy" you set the acceptance text (free) and a link to your privacy policy. Use privacy language in general, suited to your audience, without tying it to a single law. The link only accepts http:// or https:// addresses and appears next to the consent checkbox.
File upload
Choose the "File (upload)" field type to request an attachment (receipt, resume, photo). Under "More", set the allowed types (e.g. pdf, png, jpg) and the maximum size in MB (10 MB cap). The visitor uploads the file right on the page; it is stored securely and linked to the created record, appearing in that record's attachments. Type and size validation also runs on the server: executable files or disallowed types are always rejected, even if someone tries to bypass the browser. If you leave the types blank, safe defaults apply (common documents and images).
Save and continue later
Long forms can be resumed: the visitor clicks "Save and continue later" and gets a unique link to come back where they left off. Partial answers are kept for 30 days, isolated by an unpredictable token (nobody can see someone else's draft). Opening the link brings the form back already filled with the previous answers. Nothing needs to be configured: the button shows up automatically on the form page.
Payment on submit
In the "Payment on submit" section you can charge an amount when the form is submitted (for example a registration fee or a donation). Payment uses YOUR gateway (Stripe), configured in Settings → Integrations under the BYO model: the money goes straight to your account, with no intermediation from us. Choose between a fixed amount (set by you) or an amount coming from a number/currency field of the form itself. The amount to charge is always computed on the server, never by the visitor, so nobody can change the price.
On submit, the record is created normally and the visitor is taken to the gateway-hosted payment page; payment confirmation comes through the gateway webhook (the same mechanism as invoices). If you turn payment on but do not have a gateway configured yet, the builder warns you and, when in doubt, the form submits without charging so capture never breaks. Note: today form payments use Stripe (the gateway already wired to generate charges in the app).
Step 2: activate and take it to your site
- Click "Activate" on the form (it starts inactive).
- Under "Embed & share", copy the format you prefer and paste it into your site.
- Chat widget (bubble): the <script ...></script> snippet opens a chat in the corner of the page, one question at a time.
- Embed in page (iframe): shows the form embedded exactly where you paste the code.
- Pop-up button (slide-in): a floating button opens the form in a modal over the page.
- QR code: generate the QR of the public link for posters, counters or events (you can download it as PNG).
You can also share the public link directly via WhatsApp or email, all with a copy button.
Template gallery
You do not have to start from scratch. In the template gallery pick a ready-made model (Contact, Lead capture, Order/Quote, Event registration, Satisfaction/NPS or Support/ticket) and click "Use template". It creates a new (disabled) form that you tweak and turn on. Labels already come in the ten languages of the platform.
Analytics (funnel and drop-off)
Each form has an Analytics panel with the visit funnel: opens → started → submitted → completed, with the conversion rate, and the drop-off by step (where people stop filling in).
Responses and export
- Open "Responses" on the form to see the records it created over a period.
- Pick the period (7, 30 or 90 days).
- Click "Export CSV" to download everything as a spreadsheet.
The export respects field security: a field your role cannot read comes hidden or masked, both on screen and in the CSV.
Multiple languages
A form can hold translations per language. Visitors see the form in their own language (via the ?lang URL or their browser) and, when there is no translation, the base text shows. On each step you edit the label translations, and in the "Form languages" block you translate the title and subtitle.