How Cinch works
Everything needed to build a funnel, publish it and get the answers where you want them. Docs grow as beta does — if something is missing here, ask and it gets written.
Quickstart
- Start from a template. Pick the closest one from the library and change the questions to yours. Starting blank works too, but templates carry the structure that makes funnels convert.
- Set the result. Decide what someone gets for finishing — a score, a range, a plan, a recommendation — and what you ask for in return.
- Publish and share. You get a link — put it in your bio, a story, or embed it on your site. Answers arrive by email, and through a webhook if you have set one up.
Blocks
A funnel is an ordered list of blocks, one screen each. The editor shows them stacked in the order people will meet them, and every block is edited in place — there is no settings panel hiding behind one. The + between any two adds a block, and each block's own header moves it up or down, duplicates it or deletes it.
| Block | What it does |
|---|---|
| Question | One question per screen. At least two options, and six or fewer reads best on a phone. Each option carries a score. |
| Something to read | A fact, a reassurance or a bit of proof between questions. Nothing to answer — it exists to keep momentum where a question would break it. |
| Short answer | A short typed answer — text, email, phone, number or date. Use sparingly: typing costs completions in a way tapping does not. |
| A pause | A timed loader that shows the work being done before a result appears. |
| Result | The result page. Different wording above and below a score, values from their answers dropped into the copy, and as many contact fields as you need. |
| Payment | A price, what they get, and a button to your own checkout. Pro plan — see Taking payment. |
Scoring
Every option carries a score. They add up across the funnel to a single total, capped at 100 unless you change the maximum. Where a question allows several answers, the chosen options are averaged rather than summed, so a question with five tickable options cannot outweigh everything else.
On the result block that total can be shown to the visitor, and it can pick which version of the result they see: each variant has a score it applies from, and the highest one they reach wins. Scores are sent with the response too, so leads can be sorted by them.
Writing questions that get finished
- Put the easiest question first. The first answer is the commitment that carries the rest.
- Keep option labels short enough to read at a glance on a phone.
- Ask for the email after the value is obvious, not before.
- Six steps or fewer is a good default. Every extra question costs completions.
What happens at the end
A funnel does not have to end the same way for everyone, and it does not have to ask for an email at all. The result block takes an outcome that decides what happens once someone reaches it — and, if you are collecting contact details, once they hand them over.
| Outcome | What it does |
|---|---|
confirmation | The default. Shows your confirmation message and stops there. |
redirect | Sends them to another URL — your checkout, your booking page, a thank-you page. With no email capture on the step, it happens the moment they arrive. |
link | Offers a button they choose to press. Good for booking calls, where a forced redirect feels pushy. |
step | Carries on through the funnel — to a a Payment block, for instance. |
Two ways to refer to an answer, because copy and logic want different things. {{ labels.property }} prints what the visitor read — “Detached house” — and is what the buttons in the editor insert. answers.property holds the underlying value, which is what a condition should compare. Getting a result page to say “option-bdd6e9” is the sign you have reached for the wrong one.
Destinations can carry the answers with them, so the next system already knows who arrived:
/* result block */
"capture": {
"title": "Where shall we send it?",
"fields": [
{ "id": "c1", "field": "full-name", "label": "Your name", "type": "text" },
{ "id": "c2", "field": "email", "label": "Email address", "type": "email" }
],
"cta": "Send my quote",
"confirmation": "On its way."
},
"outcome": {
"kind": "redirect",
"url": "https://cal.com/studio?email={{ answers.email | urlencode }}&score={{ score }}",
"message": "Taking you to the calendar…"
}Values can be passed through a filter first: urlencode, upper, lower, number, percent and currency. Only https, http and same-site paths are ever followed — anything else is rejected when the funnel is published and again before the browser navigates. Cinch does not add anything of its own to the end of your funnel: once someone gives you their details, what they see next is yours to decide.
Taking payment
A payment block shows the price and what they get, then sends them to a checkout page you own. The money goes straight to you. Cinch never sees a card, holds no keys and takes no cut — it is your checkout, reached from your funnel.
Payment blocks are a Pro feature. Setting one up takes about two minutes:
- In your own Stripe dashboard, go to Payment Links and create one for what you are selling. Stripe gives you a URL like
https://buy.stripe.com/aEU00b1Vn0k2fXq144. No code, and it is free. - In Cinch, add a Payment block, set the price and the bullets.
- Paste the link into checkout link. The funnel will not publish without it.
Any https checkout works, not just Stripe — Gumroad, Lemon Squeezy, PayPal and SumUp links all behave the same way.
Matching a payment to the answers
Cinch adds the response id to your checkout link as client_reference_id. Stripe shows it on the payment and includes it in the checkout.session.completed webhook, so you can tell which set of answers produced which sale. Nothing to configure — it is on every payment link Cinch sends someone to.
Their answers are sent to you the moment they tap the button, before the browser leaves for the checkout. Someone who pays and never comes back is still a lead, and so is someone who gets to the payment step and thinks better of it.
Sending them back afterwards
Stripe can return people to a page of your choosing once they have paid. On the Payment Link, set After payment to Redirect customers to your website and give it the URL you want — your own thank-you page, or the funnel link again.
What Cinch does not know
Because payment happens on your provider’s page, Cinch is not told whether anyone paid. There is no paid or unpaid state on a response, no revenue reporting, and a payment block cannot lock content behind it. Stripe is where you see the money; Cinch is where you see the answers, joined up by the response id.
Publishing and sharing
Publishing gives you a link, shown on the funnel page with a button to copy it. Everything else is that same link somewhere different.
- Hosted link —
cinchfunnel.com/you/your-quizonce you have claimed an address in Settings. Works in the Instagram, TikTok and Facebook in-app browsers, which is where most bio-link traffic actually lands. - Custom domain — on Pro, point a CNAME such as
quiz.yoursite.comat your funnel from its Settings tab. The certificate is issued for you. - QR code — on the funnel page, under the link. Download it as an SVG so it stays sharp at any size on print. It points at the same link, so it keeps working if you later move the funnel to your own domain.
Embedding it in a page
The funnel page has an Embed button under the link that gives you the snippet with your own URL already in it. Webflow, Framer, WordPress and plain HTML all take it in an embed or custom-code block:
<iframe
src="https://cinchfunnel.com/you/your-quiz"
title="Your quiz"
style="width:100%;height:640px;border:0"
loading="lazy"
></iframe>Give it more height than feels necessary — a result page is taller than a question, and an iframe will not grow itself. Views and responses are counted the same as on the hosted link.
Getting the answers out
Every response is stored and readable in the dashboard, including the unfinished ones. On top of that, a completed response can be delivered to both of these at once:
- Email — a notification per lead, to one or more addresses. On by default, to the address you signed up with.
- Webhook — a signed JSON
POSTto your own endpoint. See the webhook reference.
And whenever you want the lot, CSV export is on the funnel and on its responses page — one column per question, including questions you have since deleted.
Zapier, Make and everything behind them
There is no separate Zapier integration to set up, because the webhook already is one. Both Zapier and Make start a scenario from an incoming webhook, so pointing Cinch at that URL puts every response into their catalogue of a few thousand apps.
- In Zapier, create a Zap with the Webhooks by Zapier trigger and the Catch Hook event. In Make, start a scenario with a Custom Webhook module.
- Copy the URL it gives you.
- Paste it into your funnel’s webhook field, under Also send it somewhere else.
- Run through your own funnel once so a real response arrives — that is what teaches Zapier or Make the shape of the data.
Slack is the same story for now: it accepts an incoming webhook directly, so you can point Cinch at one without going through Zapier at all.
Not yet built as one-click integrations: Google Sheets, Slack, Supabase and Airtable. The webhook route above reaches all of them today — it is more setup than a button, and it is the honest position until the native versions land.
Data and privacy
You are the controller of the responses you collect and Cinch is your processor — details in the privacy policy. Ask only for what you need, tell people what it is for, and delete responses you no longer use — there is a delete on every response. Never ask for card numbers or passwords in a question; use a Payment block, which hands over to your own checkout rather than collecting anything here.