Typeform

Typeform runs inside its own iframe, so CapchaCloud cannot wrap its fields. Capture consent on your page, hand the certificate id to Typeform, and use webhooks for server-side checks.

Evidence tooling, not legal advice. Whether a capture satisfies a particular consent requirement is for your counsel to decide.

Set up

  1. Get your client id (it starts with tnt_) from Magic Setup in the dashboard at capchacloud.com/app. Your site origin must be allowlisted there, or the widget will not boot.
  2. Be clear about the limit: a Typeform embed is a cross-origin iframe. No script on your page, ours included, can read or wrap fields inside it. CapchaCloud evidence is therefore captured on YOUR page, before or beside the Typeform.
  3. Use the hand-off snippet: it listens for the capture-success event and passes the certificate id into the Typeform as a hidden field, so every response carries the id of its evidence record.
  4. Optionally point a Typeform webhook at Zapier or Make and run server-side checks (see the Zapier / Make page). This is webhook-based, no marketplace listing.

Snippets

Hand the certificate id to Typeform as a hidden fieldhandoff

<script src="https://capchacloud.com/v1/widget.js" async></script>
<script src="https://capchacloud.com/integrations/capchacloud-browser.js"></script>
<capcha-auth id="capcha-consent" data-capcha-client-id="YOUR_CLIENT_ID" data-capcha-company="Your Company Name" data-capcha-privacy-url="https://example.com/privacy" data-capcha-terms-url="https://example.com/terms" data-capcha-campaign-id="typeform" data-capcha-form-id="typeform-intro"></capcha-auth>
<div id="tf" data-tf-live="TYPEFORM_FORM_ID" style="display:none"></div>
<script src="//embed.typeform.com/next/embed.js"></script>
<script>
  var cc = CapchaCloudBrowser.init({ clientId: "YOUR_CLIENT_ID" });
  cc.on("capture:success", function (e) {
    var tf = document.getElementById("tf");
    tf.setAttribute("data-tf-hidden", "certificate_id=" + encodeURIComponent(e.certificate_id || ""));
    tf.style.display = "block";
  });
</script>

Server-side check of a Typeform submission (run from Zapier, Make or your own endpoint)server

curl -sS https://capchacloud.com/api/v1/verify-lead \
  -H "Authorization: Bearer $CAPCHACLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email":"lead@example.com","phone":"+15551234567"}'

What is tested

Every snippet on this page is checked by an automated test that loads the page, takes the snippet out of it, and runs the real /widget.js in a browser DOM: the attributes must be exactly the ones the widget reads, the form selector must match exactly one form, and a test submission must produce a capture request carrying your campaign and form ids.

What is not verified

  • We have not run this against a live Typeform account. The data-tf-hidden attribute follows Typeform's embed documentation; confirm hidden fields are enabled on your form.
  • A server-side webhook cannot create browser-captured consent evidence (the capture API requires a human Turnstile token). The server-side calls shown check and enrich a lead; they do not substitute for the on-page capture.

This is not a marketplace app, partner listing or certified integration of Typeform. It is a snippet for your own pages.

All integrations · API reference