Agencies

Ship intake for every client. Walk away clean.

One script tag, isolated styling, webhooks, and versioning — a smart intake widget you can hand off without becoming the client's call center.

Get the embed snippet

Your day today

Hand-rolling voice + redaction per client isn't billable.

Every client wants a "smart form", but building voice capture, PII redaction, and webhooks by hand for each one isn't billable-hours-positive — and once it ships, you're the one who gets called when it breaks.

  • Voice and redaction rebuilt from scratch on every project.
  • Client CSS and CSP fight your embed.
  • You become the client's de-facto call center after launch.

With SpeakingForm

Drop it in once. Hand it off for good.

One script tag embeds a fully styled, isolated intake widget. Versioning and webhooks mean you can ship it and walk away.

Embed widget

One <script> tag drops an isolated, styled widget into any page. It renders in an iframe so your client's CSS can't leak in, with an automatic new-tab fallback.

Webhooks

Completed responses fire HMAC-signed webhooks into whatever system the client already runs. Wire it once and it keeps delivering.

Versioning & self-host parity

Every form keeps its version history with an active-version pin, and self-hosted instances run identical behaviour for clients who demand it.

"Embeds always fight my client's CSS / CSP."

The widget renders in an isolated iframe with an automatic new-tab fallback, and ships frame-ancestors * so it embeds anywhere. See the embed integration guide .

Copy & paste

The embed snippet.

Drop this where you want the form to appear. Swap in your own origin and the form's ID; the loader injects the isolated iframe for you.

index.html
<script
  src="https://<your-origin>/embed.js"
  data-form-id="YOUR_FORM_ID"
  data-height="640"
  async
></script>

Replace <your-origin> with your SpeakingForm instance and YOUR_FORM_ID with the form's slug or UUID. Prefer a direct iframe, or need the completion callback? See the integration guide .

Talk for three minutes. Leave with a form.

Describe what you need out loud. We turn it into a working intake form.