Built for teams that still make visitors click Contact
A contact button that writes to your CRM the second a visitor clicks it.
Most contact buttons on marketing sites open a mailto: link, a Google Form, or a chat widget that costs 500 dollars a month and loses the visitor between the chat vendor and the sales inbox. Strkr's contact button is a one-line embed that captures the lead with page context, routes to the right owner by territory or round-robin, and writes a timeline entry on the contact record before the thank-you screen finishes rendering.
The humble contact button on a marketing site is one of the most leaky surfaces in a go-to-market stack. The visitor clicks Contact, something happens, and then the lead disappears into an inbox, a Google Form sheet, or a chat vendor's dashboard that nobody checks on weekends. Teams searching for a better contact button almost always have the same five problems: slow follow-up, missing page context, no owner routing, duplicate records, and a chat vendor contract that costs more than the pipeline the button generates. We hear the same five stories at Strkr and the fix is almost always the same shape.
The mailto: trap
A mailto: link sends the lead to a shared inbox nobody owns.
A Contact Us button that opens the visitor's mail client dumps the message into a shared info@ or hello@ inbox. Nobody owns that inbox on a Friday afternoon. One AE who tried to track response time at a seed-stage SaaS found the median first-reply on their info@ inbox was 42 hours, with a 90th percentile of 7 days. The visitor had already picked a competitor by then. A contact button that writes to a CRM with an owner and an SLA fixes this at the source.
Page context lost
The lead arrives with no idea what page they were on.
A visitor on your Pricing page and a visitor on your Blog have very different intents. A contact button that forwards only name, email, and message strips the one piece of context (the referring page) that would have told the AE which pitch to open with. Strkr's embed captures the page URL, the page title, the UTM parameters, and the referrer and attaches them to the contact record before the message hits anyone's inbox.
Chat vendor sprawl
Intercom at 500 a month to catch three leads a week.
A design agency we talked to in April had been paying Intercom roughly 540 dollars a month to run a chat widget on their marketing site. The widget was catching three qualified leads a week. The ROI math did not survive a quarterly review. They replaced the widget with Strkr's contact-button embed, kept the three leads a week, and dropped 6,500 dollars a year of chat spend. The chat shape is overbuilt for teams whose visitors mostly want to leave a message and wait for a reply, not have a live conversation at 11 pm.
No owner routing
Round-robin that is actually a group email.
Several contact buttons claim round-robin assignment but implement it as a shared email alias. Nobody is actually assigned, and the person who happens to be at inbox-zero at 9:03 am picks the lead up. The others ignore it. Strkr's router assigns a owner on a round-robin, territory, or availability rule, writes the ownership to the record, and posts a Slack notification to the assignee so the lead has a name on it within seconds.
Duplicate records
The same person submits three times, you get three records.
A prospect at a mid-market insurance brokerage filled out a contact button on the vendor's site three times over four weeks because the vendor had not replied. Three records. Three different owners. One confused inside-sales conversation. The dedupe runs on the embed itself in Strkr: fuzzy match on email domain and work-email string, merge candidate surfaced to the admin, and the activity history concatenated so the AE sees the full picture rather than three thirds of it.
No downstream automation
The button fires, and then nothing automated happens.
Chat and form vendors that do not sit on the same platform as the CRM mean the contact-button submission is the end of the chain, not the start. Strkr's contact button fires a workflow event the moment the lead lands: an auto-reply from the owner's calendar with a Calendly-style booking link, a Slack ping, a lead-score Strkr AI pass, and a next-step task on the contact record. The button is the first node in a flow, not a dead end.
What a usable contact button looks like
The eight capabilities that separate a Contact Us link from a working intake surface.
A website contact button is deceptively simple on the outside and surprisingly complex on the inside once you want it to actually drive pipeline. The eight capabilities below are the ones we see consistently on teams whose contact buttons work and consistently absent on teams whose contact buttons do not. If you can get all eight in one embed, the sales handoff gets clean fast.
One-line embed
A single script tag, no SDK ritual.
Paste one line into your site layout. The embed registers on page load, injects the button on your element of choice, and starts listening for clicks. No npm package, no React import, no vendor-specific SDK. Teams on WordPress, Webflow, Astro, Next.js, and plain HTML can ship the contact button on the same afternoon they decide to try it.
Themed to your site
The button inherits your brand without a design pass.
The embed reads your primary color, font family, and border-radius from CSS custom properties, so the button lands on your site looking like it belongs. Teams who want tighter control can override every token in the embed config. The modal that opens on click uses the same inheritance so the whole surface reads as your product, not a vendor badge.
Page context capture
URL, UTMs, referrer, and session attached automatically.
Every submission attaches the current URL, the page title, UTM parameters, the referrer, the user agent, and a session identifier. Those fields are indexed on the contact record so an AE can filter "leads from the pricing page" or "leads from LinkedIn ads" without a separate attribution tool. Context is captured whether the visitor is on a landing page, a blog post, or a product tour.
Owner routing
Round-robin, territory, or availability rules on the embed.
Define the routing rule once in the Strkr admin and the embed enforces it. Round-robin across a named group, territory-based assignment on country or state, availability-aware (skip reps who are OOO), or weighted by quota. The assignee is written to the contact record and notified in Slack within seconds. The visitor never sees the routing complexity.
Dedupe on write
A repeat visitor merges to the existing record.
If the submitted email matches an existing contact, the submission appends to the existing record as a new activity, not a new contact. If the email domain matches an existing company, the contact is attached to that company automatically. Fuzzy-match on first-name plus last-name plus domain catches the common typo cases. Admins see merge candidates in the dedupe queue if the match is ambiguous.
Auto-reply with booking
The thank-you screen offers a time, not an email.
Instead of a generic "we'll be in touch," the thank-you screen offers the assignee's calendar availability as clickable slots. The visitor picks a time, the meeting lands on both calendars, and the lead has a scheduled conversation before they leave your site. Teams that enable this capability see 2 to 3 times the discovery-call rate on contact-button leads versus the plain "we'll follow up" flow.
Spam defense
Honeypot plus Strkr AI classifier, no CAPTCHA burden.
Hidden-field honeypots catch the dumb bots, a lightweight Strkr AI classifier catches the submission-form-filler bots, and the visitor never sees a CAPTCHA. The spam rate on contact-button embeds in production is under 2 percent, measured across a sample of 40 Strkr tenants running the embed. CAPTCHA kills conversion; honeypot plus a classifier does the job without the friction.
Workflow trigger
Every submission is a flow entry point.
The contact-button submission fires a workflow event on the Strkr side. A team can build a flow that scores the lead, posts the alert to a specific Slack channel, assigns a next-step task with a 2-hour SLA, and auto-emails a resource kit, all without a separate automation tool. The button becomes the first node of a motion rather than a form that lands in an inbox.
How the embed works under the hood
A one-line script, a hosted modal, and a direct write to the CRM.
The architecture of the contact-button embed is intentionally boring, which is what makes it reliable. The script is 14 KB gzipped and lazy-loads the modal only when the button is clicked. There is no third-party iframe, no cross-origin cookie, no analytics beacon fired without consent. The submission flow is a direct POST to the Strkr API from the visitor's browser with a public tenant token that can only write contact records and only to the configured workspace.
Lazy modal load
The modal UI loads on click, not on page load.
The 14 KB script attaches a click listener. The modal UI (another 32 KB) loads only when the visitor clicks the button, so the page-load impact of adding the embed is small enough to pass a Core Web Vitals audit without complaint. Teams who are strict about site performance often cite this detail as the deciding factor against Intercom and HubSpot forms.
Public write token
A scoped tenant key that cannot read anything.
The embed authenticates with a public token that is scoped to write a contact record and nothing else. The token cannot list contacts, read deals, or export data. Rotating the token is a one-click admin action and the embed picks up the new token on the next page load. Security review teams at mid-market buyers usually sign off on this shape in under 20 minutes.
HTTPS only
No http:// embeds, no mixed content.
The embed refuses to run on non-HTTPS pages. If a staging environment is serving over HTTP, the embed logs a warning and does not render. This is a defensible-by-default stance for a form that submits lead data, and it stops the common mistake of a form running over HTTP on a staging domain that someone forgot to turn off.
Open API below
The same endpoint is in the public API.
The contact-button embed POSTs to the same /v1/contacts endpoint that external integrations use. If you want to replace the embed with a custom form, a native mobile capture, or a server-side webhook, the API is open and the shape is identical. The embed is a convenience layer, not a lock-in.
Consent capture
GDPR consent checkbox when the config asks for it.
If the Strkr tenant has GDPR mode enabled, the modal renders a consent checkbox with the configured legal copy and stores the consent timestamp on the contact record. The consent string is a column on the record, visible in exports and in the admin UI, so a data-subject-access request can be answered in minutes. CCPA teams can configure the equivalent language.
Multilingual
Browser locale drives the modal copy.
The modal copy (field labels, placeholder text, thank-you message, consent string) renders in the visitor's browser locale when a translation exists. English, Spanish, French, German, Portuguese, and Japanese ship by default. Teams can override any string per locale in the admin. A visitor on a Brazilian site sees Portuguese copy without the sales team doing anything.
Field customization
Add or remove fields without touching code.
The default modal has name, email, company, and message. Admins can add dropdowns, text fields, or checkboxes in the embed config and the modal re-renders without any site code change. A team that wants to capture "how did you hear about us" or "team size" on the contact button can ship the change in 10 minutes.
What happens the second a visitor clicks
The 90-second journey from Contact click to a scheduled meeting.
The journey from a visitor clicking Contact to a scheduled meeting on your calendar is the single most important sales motion on a marketing site. On most teams it takes 2 to 7 business days with multiple back-and-forth emails. On Strkr with the contact-button embed configured properly, the median journey is under 90 seconds and the visitor is on the AE's calendar before they leave the site. The cards below walk through what happens in that 90-second window.
Second 0
Visitor clicks the Contact button.
The modal opens, pre-filled with any context available from the browser (if the visitor has signed in before, the email is remembered). The visitor types a message or picks a dropdown reason. The form submits with a single click and the thank-you state begins to render.
Second 2
The contact record lands in the CRM.
The submission writes a new contact (or appends to an existing one if the email matches), attaches the company based on email domain, applies the dedupe logic, and tags the record with the page context. The record ID is returned to the embed and used to anchor the next steps.
Second 4
The owner is assigned.
The router runs the configured rule, picks an assignee, writes the ownership to the record, and fires a Slack notification to the assignee's DM with the message body and the context fields. The assignee gets the ping before the visitor sees the thank-you screen finish rendering.
Second 6
The thank-you screen offers a time.
If the booking integration is enabled, the modal transitions to a calendar view showing the assignee's next available slots. The visitor picks a time and the modal confirms the meeting is on both calendars with a Zoom or Google Meet link already generated.
Second 30
The Strkr AI lead score lands.
A background Strkr AI job scores the lead using the message body, the company context, and any firmographic data from the enrichment vendor. The score lands on the contact record within 30 seconds of submission so the assignee has a priority signal before they open the record.
Second 60
The next-step task is created.
A workflow creates a next-step task on the contact record owned by the assignee. The task has an SLA based on the lead score: 2 hours for a high-score lead, 24 hours for a mid-score, 72 hours for a low-score. The SLA shows on the assignee's task list with a countdown.
Second 90
The meeting lands on both calendars.
If the visitor booked a time, the meeting invite is on their calendar and the AE's calendar with the right conferencing link. The AE sees the next steps in Strkr, the context in the contact record, and the scheduled meeting on their day. The 90-second journey is complete and the sales handoff is clean.
Common contact-button configurations
Five shapes teams actually ship, and when each one fits.
The contact-button embed is flexible enough to handle five distinct shapes we see in production. Each one is a configuration difference, not a code difference. The five below are the ones we help new teams pick between most often, and the picking logic usually comes down to whether the team wants to prioritize speed-to-meeting, context capture, qualification, or lightweight presence.
The founder flow
Single AE, every lead routes to one person.
A seed-stage team with one founder running sales. The embed routes every submission to the founder's calendar with the booking widget enabled. Lead scoring is turned off because the founder qualifies every lead by hand. This is the shape that gets a brand-new company from zero to first-ten customers without any sales tooling investment.
The round-robin flow
Multiple AEs, equal distribution.
A team of three to six AEs with no territory structure. The embed round-robins across the named group, respecting OOO status. The booking widget shows the assignee's availability. Lead scoring is on so each AE sees priority on their inbound queue. This is the most common Pro-tier shape in Strkr.
The territory flow
Routing by country, state, or industry.
A team selling across multiple territories (US-East, US-West, EMEA, APAC) or industries. The embed reads the visitor's country from the IP geo lookup and routes to the matching territory rep. Industry routing uses a dropdown on the modal that the visitor selects. The admin maps each territory to a rep group.
The qualification flow
Dropdowns gate the assignee pool.
A team that wants to pre-qualify before assigning. The modal has a dropdown for team size, use case, or budget. Submissions that pass the gate (team size > 25, for example) route to the AE pool; submissions below the gate route to a self-serve nurture flow with a resource kit. This cuts the AE queue of low-fit leads significantly.
The lightweight presence
No modal, direct mailto fallback.
For teams that want a Contact button but do not want a modal flow at all, the embed can render a plain mailto: link styled with the site theme. The CRM write still happens (via a Reply-To address that routes through Strkr) but the UX is a simple email launch. This fits teams whose motion is still mostly email and who are not ready for the full capture flow.
Head-to-head
Strkr contact button vs the typical chat widget.
Most teams searching for a better contact button are coming from either Intercom, Drift, HubSpot forms, a Google Form, or a Typeform. The feature-level comparison tells most of the story. The pricing comparison tells the rest.
Feature
Strkr
Chat widget / form vendor
Script size on page
14 KB gzipped on load, 32 KB on click
150 to 300 KB on page load (Intercom, Drift)
CRM write latency
Direct POST, under 500 ms
Vendor queue, 30 seconds to minutes
Owner routing
Round-robin, territory, availability, weighted
Shared inbox or basic round-robin
Booking integration
Native calendar on the thank-you screen
Separate Calendly link emailed later
Dedupe on write
Fuzzy match plus merge queue
Separate record every time
Page context capture
URL, UTMs, referrer, session, user agent
URL only or none
GDPR consent
Timestamped consent string on the record
Consent checkbox but no record trail
Spam defense
Honeypot plus Strkr AI classifier, no CAPTCHA
reCAPTCHA with visible friction
Pricing
Included on Strkr paid tiers, flat per seat
400 to 900 dollars a month for Intercom basics
Lock-in
Open API, your data stays in your CRM
Visitor data lives in the vendor dashboard
How teams use Strkr
Teams that replaced a chat widget with the Strkr contact button.
The three stories below are from Strkr tenants in the last year who dropped a paid chat vendor in favor of the contact-button embed and the integrated routing. Each team had a reason, and the result was a cleaner handoff and a smaller bill.
B2B SaaS, 24 employees, Series A
From Intercom at 540 a month to the Strkr embed in a Thursday afternoon.
A Series A B2B SaaS was running Intercom primarily for the chat widget on their marketing site. The widget caught about four leads a week and the sales team never used the live-chat side (nobody wanted to be on at 11 pm). The team replaced the widget with the Strkr contact-button embed on a Thursday afternoon, kept Intercom for the help-center product-side use, and cut 6,500 dollars a year of marketing-site chat spend. The sales team reported better routing because every lead now hit a named owner within seconds.
Design agency, 11 people
Replacing a Typeform contact flow with native capture and booking.
An 11-person design agency had been running a Typeform contact flow linked from a Contact button on their site. The form was conversion-friendly but the leads landed in a Typeform dashboard that someone had to manually copy into their CRM every Monday morning. The agency moved to the Strkr embed, kept the multi-step feel with the field customization, and added the booking widget on the thank-you screen. First-meeting rate on contact-button leads went from 18 percent to 44 percent.
Accounting firm, 8 partners
Territory routing across four partner groups.
An 8-partner accounting firm had been routing website leads based on service area (tax, audit, advisory, bookkeeping) via a group inbox and a Monday-morning triage call. The embed's dropdown routing let each service area pick up their own leads in real time and the triage call was retired. The partner running the embed migration told us the measurable change was the elimination of the Monday meeting, which the partners valued more than the pipeline uplift.
Enterprise services, 40 reps
Round-robin with availability awareness across a 40-rep team.
A 40-rep enterprise-services team had been using a HubSpot form with a shared assignment that in practice meant the first rep to spot the submission grabbed it. The result was uneven distribution and some reps carrying twice the load. The Strkr embed with weighted round-robin plus OOO-aware assignment distributed inbound leads evenly across the team. The ops lead measured a 23 percent reduction in time-to-first-touch across the team as a secondary effect.
Boutique consulting, 5 partners
The founder flow for a lightweight boutique.
A 5-partner boutique consultancy did not want round-robin routing. They wanted every lead to go to the managing partner for a quick triage. The founder-flow configuration (single AE, every lead routes to one person) with the booking widget turned off and the lead score turned off was the right fit. The managing partner reads every lead within an hour and triages manually, which matches the firm's shape and does not require any additional process overhead.
The contact button that writes to your CRM in under a second.
Replace the mailto link, the stale Google Form, or the chat widget nobody uses with a one-line embed that routes leads to a named owner, offers a time on the thank-you screen, and writes a timeline entry before the modal finishes closing.
How long does it take to ship the contact button on a live site?
Shipping the embed on a WordPress, Webflow, Astro, Next.js, or plain HTML site is a one-afternoon job for a developer with site access. The actual embed is one line of script plus an element identifier where you want the button to appear. The configuration (owner routing, booking integration, GDPR copy, custom fields) happens in the Strkr admin and does not require a redeploy. A team that already has the Strkr workspace running can be live with the embed in under 90 minutes end to end.
Does the embed slow down my site?
The initial script is 14 KB gzipped and lazy-loads on page load without blocking render. The modal UI (32 KB) only loads when a visitor clicks the button. In Lighthouse testing across a sample of marketing sites running the embed, the page-load impact was consistently under 60 ms added to Largest Contentful Paint on a 4G connection. Teams with strict Core Web Vitals budgets have shipped the embed without a budget regression. Compare that to the common chat widget load of 150 to 300 KB on page load.
What happens to the lead if nobody is online when the visitor clicks?
The lead still writes to the CRM, the owner is still assigned, and the Slack ping still fires. If the owner has OOO status enabled in Strkr, the router skips them and picks the next person in the pool. The booking widget on the thank-you screen shows the assignee's next available slot, which could be the following business day. The visitor is never left in a dead-end state; the asynchronous flow is the default rather than a fallback.
Can I use the embed on a site that is not on Strkr yet?
The embed requires a Strkr workspace because the submissions write to the Strkr CRM. If you are evaluating the contact button in isolation (without migrating your full CRM yet), you can run the embed on top of a Strkr Starter workspace alongside your existing CRM and sync the records via the Strkr open API. This hybrid shape is common during an evaluation period. Teams who like the button usually consolidate the full CRM onto Strkr within a quarter.
Is the data captured by the embed secure?
The embed submits over HTTPS only; the embed refuses to run on an HTTP page. The public tenant token is scoped to write a contact record and nothing else, cannot read any data, and rotates on a one-click admin action. The submission data is encrypted in transit (TLS 1.3) and at rest (AES-256). Strkr is HIPAA compliant with a BAA available on request and SOC 2 Type II is in progress through 2026-Q4. GDPR and CCPA consent handling is built into the embed when the tenant has GDPR mode enabled.
Can I replace the embed with a custom form later?
Yes. The embed submits to the same /v1/contacts endpoint that external integrations use. If a team outgrows the embed UX and wants a fully custom form with their own validation and submission flow, the API is open and documented. The embed is a convenience layer on top of the API, not a lock-in. Teams typically start with the embed and keep it; a handful have moved to a custom form in year two when their form logic got complex enough to warrant it.
No sales call, no migration consultant, no four-month implementation. Enter your card, get 14 days of the full Pro tier, cancel any time before day 14 with zero charge. Spin up a workspace, import your CSV, and have something useful before lunch.
We use cookies.
Essential cookies keep the site working. If you accept, we also enable Google Analytics
so we can see which pages help and which don't. Reject to opt out entirely. Details in our
Privacy Policy.