floe
Home / Docs / Integrations

Integrations

A sales conversation is only useful if what happened reaches the person who follows up. Site → Integrations is where you decide where recaps go, and where you check that each one went through.

The page runs in the order you set it up: connect your CRM and calendar, choose where leads go, set which contacts may reach the CRM, then read the delivery log. Connecting or disconnecting a provider, choosing a scheduling page, and switching a CRM write on or off apply at once. Each notification channel, the booking link and the contact-delivery policy has its own Save Changes button, which saves that card only.

Two summaries are prepared for an eligible session: an internal one for your team and a warmer one for the prospect. Floe never substitutes the internal summary into a prospect email.

Contact capture — storing the email or phone a prospect shares and using it for recaps and CRM delivery — is enabled per deployment. Contact Floe to turn it on for yours.

Notification channels

Four channels. The two emails and Teams each have a card with a switch, a destination, and a Save Changes button, and a change takes effect when you save its card. Slack has no switch or Save: connecting with Add to Slack and choosing its channel apply at once, and Disconnect turns it off.

ChannelDefaultWhere it goes
Prospect recap emailOnThe email address the prospect shared during the session
AE recap emailOffOne address you set, and the lead's HubSpot owner when Floe finds one
SlackOffA channel you choose
Microsoft TeamsOffAn incoming webhook you paste

Prospect recap email

Sent when the prospect shared an email during the session and prospect recaps are enabled for the site. It contains a short summary of the conversation, up to seven features the agent actually showed them, and up to three of their own questions quoted back. A temporary delivery failure is retried automatically. If the address bounces permanently or the recipient reports the recap as spam, Floe stops using that address for that visitor, as it does after Not you?: no later recaps, and no later CRM write. A CRM write that already completed is not reversed.

It carries your branding: your site logo (falling back to your favicon) and your accent colour. The footer reads "Powered by Floe".

The call to action adapts to how the session ended — a trial invite, an offer to bring in their team, a deeper walkthrough, or a plain follow-up. When you have configured a booking URL, the email includes Schedule a follow-up. Every recap also includes a Not you? link.

What the recap actions do

  • Schedule a follow-up takes the prospect to your configured booking page. Opening it in the same browser they used for the demo also confirms their email address. Opening it elsewhere still leads to scheduling but does not confirm the address.
  • Not you? opens a Floe confirmation page. Nothing changes until the recipient chooses Confirm this was not me, which marks the address as rejected so it is not used for later contact. It does not recall an email already delivered or reverse a CRM write that already completed.

Both links carry a single-purpose token that is never exposed to your page's analytics.

AE recap email

Sent to the address you configure. With HubSpot connected, the lead's owner there gets their own copy when Floe finds one (see Lead owners). This is the internal version. It arrives under the same sender name as the prospect recap — your product name — but the body is Floe-attributed, so an AE cannot mistake it for something forwardable.

It contains the prospect's identity and role, session duration, the internal summary, an intent chip, and the structured read on the conversation: buying signals, features shown, questions asked, tech stack, pain points, capability gaps, objections, and what they said they were interested in. Each list is capped at six items. It deep-links to the full session in the dashboard.

AE email, Slack, and Teams label the lead as Confirmed contact, Unverified email claim, or Anonymous lead, and show a phone number with a Prospect-confirmed label (the prospect checked the transcription during the call) or a Stated label (entered on a form or demo link). These labels tell the person following up how much to trust the details; neither verifies ownership.

Slack

Add to Slack installs the Floe app in your workspace. Approve it on Slack's own screen, then choose a channel on the card. Public channels are listed straight away; for a private channel, run /invite @Floe in it and select Refresh.

Each recap leads with the company, or the person when there is no company, and is marked when the lead scored Hot. It shows their role, how to reach them, the lead score and why, the intent, the summary, and the signals worth acting on, with a link to open the session in Floe. A Website Agent conversation is labelled as one, and every recap shows when it ended, in each reader's own timezone.

The card says when something needs you: Pick a channel until one is chosen, Channel unavailable when the chosen channel was archived or Floe was removed from it (choose another; there is nothing to reconnect), and Reconnect required when Slack refused Floe's access (usually because the app was removed from the workspace) or posts to Slack kept failing. An org-wide install on Slack Enterprise Grid is not supported; install the app into a single workspace.

Microsoft Teams

Paste an incoming webhook and turn the channel on. It must be a *.webhook.office.com or *.logic.azure.com URL. Create one via the Workflows app in Teams: Post to a channel when a webhook request is received.

The host restriction is enforced, not advisory: recaps contain prospect details, so Floe posts them only to Microsoft's webhook hosts.

Testing a channel

Each channel has a Test send button that runs the real notifier against a sample session, so you can see the actual formatting before a prospect does.

Two things that trip people up:

  • Save first. The Teams test uses the saved webhook, so its Test button stays disabled while the field holds an unsaved URL. The AE email channel works the same way unless you type a different inbox next to its button, which previews without saving. The Slack test posts to the channel you chose.
  • The prospect test needs an address to deliver to — pass your own inbox. If your booking URL contains {email}, the sample booking link uses that inbox.

Booking integrations

Connect Cal.com or Calendly from the Booking card on Site → Integrations in two steps:

  1. Select Connect and approve Floe in the provider's authorization screen, in the same browser. This connects the current provider user's meetings. If you administer the provider account and want team-wide coverage, choose Connect whole organization (admin) instead.
  2. Choose the scheduling page or event type Floe should offer for this site. If your existing Booking link matches one of them, Floe selects it for you.

That is the complete setup. Floe registers booking notifications itself; you do not create a webhook, copy a signing secret, or issue a personal access token.

The connection is shared by your Floe organization, while each site selects its own scheduling page. Owners and Admins can connect or disconnect providers and change the site's page; Members keep read-only access. Disconnecting releases every site that used the connection; each saved booking URL remains available in Link only mode.

Provider Connect is enabled per deployment. If Connect is unavailable, keep using the link-only fallback below and contact Floe to enable the provider.

What the connection status means

StatusMeaning
ProvisioningAuthorization succeeded and Floe is finishing setup. You can leave the page.
Bookings verifiedThe provider confirms booked, rescheduled, and cancelled meetings to Floe.
Delayed verificationBooking links still work. Floe is repairing the provider notification.
Tracks your meetings onlyThe provider granted user-level rather than organization-level access, so meetings owned by other hosts may not be verified.
Reconnect requiredProvider access expired or was revoked; reconnect to resume verification.
Link onlyThe scheduling link works, but Floe cannot verify a booked call from it.

Organization-wide access depends on the connected user's provider role and plan. When those permissions are unavailable, the organization-wide attempt leaves the current configuration unchanged; use the user connection and ask a provider admin to upgrade it later.

Cal.com event types with multiple seats per time slot or manual confirmation are not offered in the picker yet. Choose a standard personal, team, or round-robin event type.

Floe's provider access is limited to identifying the connected account, listing scheduling pages, reading booking state, and receiving booking notifications. Floe does not create, cancel, or reschedule meetings for you.

How a booking gets verified

A call counts as booked only when the provider confirms it to Floe; a click on a booking button never counts. The reference Floe matches it against contains no name, email, or company. Bookings that did not start from Floe are ignored.

Verified booking records, including a later cancellation or reschedule, follow the site's conversation-retention window.

You can still set Booking link, at the foot of the Booking card, to any https:// scheduling link without connecting a provider, and save it there. It becomes the call to action in the prospect recap email and the destination the agents offer when a visitor asks to talk to someone. Internal recaps do not include it. A per-prospect Demo Link booking override must also use HTTPS.

Cal.com, Calendly, and Schedule Hero open inside the Demo Agent's follow-up screen and the Website Agent's booking view, with an option to open separately. Other HTTPS schedulers open in a new tab. Schedule Hero does not require a provider connection and works in Link only mode; it does not report verified bookings to Floe.

If your site restricts embedded content with a Content Security Policy, allow your scheduling provider's origin in frame-src.

Floe does not add visitor details to ordinary booking links. To pass the visitor's email to a scheduler, explicitly set a complete query value to {email}, for example:

https://your-team.schedulehero.io/inbound/demo-router?email={email}

Use your own scheduling route and keep {email} as the placeholder, rather than pasting a fixed person's address. Custom HTTPS providers can use their own query parameter name, such as invitee={email}. The agents fill it from the email supplied for the current prospect, subject to your site's consent setting; without an email, that parameter is omitted and the visitor enters it on the scheduling page. Names and company details are not added.

The prospect's Schedule a follow-up recap action also fills an explicitly configured email placeholder when opened. Internal recaps carry no booking link. Fixed identity-prefill parameters such as email=someone@example.com, name, or company are refused by recap links.

Email templates use Link only mode. With a connected provider's selected scheduling page, Floe instead adds one anonymous attribution parameter (utm_content for Calendly, metadata[floe_ref] for Cal.com). Leave the setting blank to omit booking controls; the Not you? action in the recap remains.

Choosing Use link only removes the selected provider page but keeps the URL. Booking buttons continue to work, but the funnel cannot count a booking under Booked a call until you select a connected event type again.

Sender identity

Recap emails always send from Floe's verified sending address, with your product name as the display name. Sending from your own domain isn't supported yet. You can set a Reply-To address you own, so a prospect who hits Reply reaches your team.

CRM

Floe can write demo recaps into HubSpot or Salesforce.

You connect a CRM from Site → Integrations with the Connect button, which runs an OAuth flow. The provider apps are not yet live in production: until they are, a CRM you haven't connected shows Ask us to enable in place of Connect; contact us to hear when it's available. Once connected, the integration writes:

WhatHubSpotSalesforceDefault
The recapA Note on the contactA Task on the contactOn
A dealA Deal linked to the contactAn Opportunity, attached to the contact's account when it has oneOff

Contact delivery

CRM contact delivery, under Site → Integrations, decides when a prospect's email is trusted enough to create or update a CRM contact:

PolicyWhat reaches the CRM
Confirmed only (default)The contact is written once the prospect confirms the address by opening Schedule a follow-up or booking from the same browser they used for the demo. Until then, the write waits.
As stated (explicit opt-in)The contact is written from the address the prospect gave, labelled as unverified in the recap. Your team checks it on follow-up.

Confirming a spoken email in the message box during the call confirms the transcription, not the address; it does not release a Confirmed-only write. Anonymous leads never create a contact.

Switching back to Confirmed only holds any contacts that are still waiting; it does not remove records already delivered. A contact is only ever written once: a later confirmation does not create a second Note or Task.

As-stated delivery is limited to 200 CRM writes per site per rolling 24 hours, counting each recap and each deal. Additional writes are held when the limit is reached. Contact Floe about the limit for your deployment.

Both HubSpot and Salesforce find or create contacts by email. A phone-only lead cannot be delivered, and Floe does not populate either provider's phone property; a prospect-confirmed phone appears in the Note or Task text instead. HubSpot contacts get name, company and job title; Salesforce contacts get name and job title only. Floe never creates a Salesforce Account, so a contact Floe created has no account to attach an Opportunity to.

The Note or Task carries a lead card with, when the session supplied them:

  • Whether the lead came from a demo or a Website Agent conversation
  • Conversation summary, buying and intent signals, and products or features of interest
  • Questions, pain points, objections, capability gaps, and relevant tech stack
  • Budget and qualification answers
  • The lead score and its tier, when the lead has been scored
  • The recommended next step
  • How the contact was verified, and a link to the Floe session

The same values can be written to custom contact fields when Floe has configured a field mapping for your integration; there is no dashboard for that yet.

Lead owners

While the AE recap email and HubSpot's Sync recap to the Contact are both on, Floe looks up who owns each lead once its recap is in HubSpot: the contact's owner, otherwise the owner of the contact's company, otherwise the owner of its most recently updated open deal. That person gets their own copy of the AE recap, so with Confirmed only it arrives when the contact is written, not when the session ends. Floe sends it only to an owner whose address is on your site's domain or your AE address's domain, and never a second time to your AE address. It is not listed in the delivery log.

A confirmed contact that Floe creates is also linked to its company, when exactly one company in your HubSpot has the email's domain. Common free-mail domains and ambiguous matches stay unlinked. Floe never changes an existing contact's company or anyone's ownership.

This needs HubSpot read access to owners, companies and deals, which Floe asks for when you connect; the person connecting can grant only what their own HubSpot access allows. If HubSpot was connected without it, the HubSpot card under Site → Integrations shows Reconnect. Until then, recaps are delivered as before, without the owner's copy.

Deal creation is off by default on purpose: if you already sync your scheduling tool to your CRM, that tool usually creates the deal, and turning both on gives you two. Deal stage and amount are configured by Floe for your deployment; there is no customer dashboard for those yet.

What triggers a recap

A completed Demo Agent session triggers the configured channels. A Website Agent session triggers them when it ends — completed or abandoned — and the conversation produced either an email address or concrete qualification or intent evidence. A name, a page view, or generic Q&A alone does not create a lead or generate sales traffic.

Recaps are sent once. A late signal can make a session eligible, but it never sends a second email or Slack message.

Delivery log

The Delivery log at the foot of Site → Integrations answers "what did Floe send for this lead, and did it get there?". It lists one row per lead and destination, newest first: the recap in your CRM, the deal if you create one, Slack, Microsoft Teams, the AE recap email, and the prospect recap email. Each row shows the lead, the destination, Sent or Failed, when Floe last tried, and how many tries it took. Select the lead to open their conversation or demo. Filter the list by channel and by outcome.

  • Sent means the destination accepted it. If a prospect recap later bounces permanently, its row changes to Failed; the other channels report no later bounce.
  • Failed rows say why in a sentence, and what to do when there is something to do: reconnect a CRM or Slack workspace that refused Floe's access, or check a Slack channel or Teams webhook URL that no longer accepts messages.
  • A CRM write Floe could not confirm is shown as Failed and is not sent again. Check the record in your CRM.
  • A channel that is off or has no destination sends nothing and adds no row. Test sends are not logged.

A row holds no message text, email address, or webhook URL. It is deleted 90 days after its session began, the same default as session recordings, and sooner when that lead's data is deleted, for example by deleting their People record. The Conversation retention setting does not change this. Reading the log needs the same access as Leads: Owners and Admins.

FAQ

Can I change what the prospect email says? Not the copy. You control your logo, accent colour, product name, and booking URL; the structure and the summary are generated per session.

Can I send to more than one AE? The AE recap takes a single address you set. With HubSpot connected, the lead's owner gets a copy too, when Floe finds one. For more people than that, a shared inbox or a distribution list is the usual workaround, or use the Slack channel instead.

Do I need a CRM for any of this to work? No. Email, Slack and Teams are independent of the CRM integration.

Which other CRMs are supported? HubSpot and Salesforce. Nothing else today.