Embed guide

Add FinishTax to your website

Put your client intake portal and appointment booking directly on your own site. Clients submit documents and book time without ever leaving your website.

One script tag installs your FinishTax intake portal on any website — as a floating button, an inline form, or a shareable link — plus a drop-in scheduling embed for appointment booking. Every submission lands in your FinishTax dashboard exactly like a portal submission.

What you can embed

3 options

Client Intake Widget

All plans

A floating button or inline form on your site. Clients drop documents via Quick Drop or complete a Full Intake — fully brandable.

  • One script tag; works on any platform
  • Submissions appear in your dashboard instantly

Appointment Booking

All plans

A popup or inline booking form that writes appointments straight to your FinishTax calendar.

  • Adaptive glass style or your brand color
  • Custom button text and placement

Branded Portal

All plans

Your own yourfirm.finish.tax client portal with your logo and colors — share it as a link or QR code, no code on your site at all.

  • Agency plan adds a full custom domain

Quick start

4 steps
  1. Generate a portal link. In the FinishTax app, go to Submissions and generate your portal link if you haven't already.
  2. Create an embed. Open the Website Embed section in your Portal Settings and choose a method: Floating Button for a persistent call-to-action, Inline Form for a dedicated "Submit Documents" page, or Link / QR Code for email campaigns, social media, and printed materials.
  3. Copy the install code. Click Get Code on your embed and copy the snippet.
  4. Paste it on your website. Follow the platform guides below for WordPress, Squarespace, Wix, or Webflow.

Client intake: three ways to install

3 methods

1. Floating button Best for site-wide

A button in the corner of your site that opens your intake portal in a full-screen modal. Paste one script tag just before </body> (or in your platform's footer-code slot):

<script src="https://www.finish.tax/embed.js" data-embed-id="emb_XXXXXXXX"></script>

Replace emb_XXXXXXXX with your embed ID from the install-code modal — the snippet you copy from the app already has it filled in.

2. Inline form Best for a "Submit Documents" page

The portal embedded directly inside your page content. Paste both the container and the script tag where you want the form to appear:

<div id="pp-inline-portal" data-embed-id="emb_XXXXXXXX"></div> <script src="https://www.finish.tax/embed.js" data-embed-id="emb_XXXXXXXX"></script>

The form sizes itself automatically. If your page constrains it, give the container a minimum height:

<div id="pp-inline-portal" data-embed-id="emb_XXXXXXXX" style="min-height: 800px;"></div>

3. Link / QR code Best for email, social & print

A direct URL or scannable QR code that opens your intake portal — no code on your site at all. Use it in email signatures, social posts, or printed mailers:

https://www.finish.tax/portal/?p=YOUR-PORTAL-CODE&ref=emb_XXXXXXXX

The app generates the exact link and a downloadable QR code for you, and the ref parameter keeps your analytics attributed to this embed.

Appointment booking embed

1 script tag

Take bookings on your own site with a single script tag. By default it renders a "Book an Appointment" button that opens your booking page in a popup; switch to inline mode to embed the booking form directly in the page.

Booking button (popup)

<script src="https://www.finish.tax/schedule-embed.js" data-slug="your-booking-page" data-text="Book an appointment" data-color="#0c5c3c" async defer></script>

data-color is optional — omit it to keep the adaptive glass style that matches light and dark sites automatically.

Inline booking form

<div id="ft-schedule"></div> <script src="https://www.finish.tax/schedule-embed.js" data-slug="your-booking-page" data-mode="inline" data-target="#ft-schedule" async defer></script>
AttributeValuesWhat it does
data-slugyour booking-page slugRequired. Identifies your booking page — copy it from the Scheduling section of the app.
data-modebutton (default) · inlinebutton shows a button that opens a popup; inline embeds the booking form in the page.
data-colorany hex colorSolid brand color for the button. Omit it for the adaptive glass style that matches light and dark sites automatically.
data-textany labelButton label. Default: "Book an Appointment".
data-targeta CSS selectorWhere to render the button or form (e.g. #ft-schedule). Omit it to render right where the script tag sits.

The inline form auto-resizes to fit its content — no scrollbars, no fixed heights to maintain.

Customization reference

intake widget

Every intake-embed option is configured in the FinishTax app — edit your embed and the change goes live everywhere it's installed, with no snippet update. The embed editor shows a live preview as you adjust:

OptionChoicesNotes
Button textany labelDefault: "Submit Documents".
Positionbottom-right · bottom-left · bottom-centerWhere the floating button sits.
Sizesmall · medium · largeButton height, padding, and font scale together.
Appearanceglass · solidGlass is the frosted translucent default; solid uses your button color and text color.
Cornerspill · rounded · squareButton corner radius.
Iconupload · document · briefcase · noneThe small icon on the button, before the label. Choose none for a text-only button.
Edge offsetsX and Y, 0–120 pxNudge the button away from cookie banners or chat widgets.
Intake modeInherit portal setting · both · Quick Drop only · Full Intake onlyLimit which intake path clients see when the portal opens. Inherit (the default) follows your portal-wide setting.
Firm nameany nameShown in the modal header.
Header colorinherit · any hex colorBy default (“Use portal branding color” checked) the header inside the embed uses your portal branding color. Pick a color to override that branding for this embed only.
Hide "Powered by FinishTax"on / offAvailable on the Firm plan and up.
Domain restrictionslist of domainsThe embed only runs on sites you allow; subdomains are included automatically. Leave blank to allow all.

Branding colors and your firm logo come from Portal Settings → Branding (PNG, JPG, SVG, or WebP, max 2 MB).

Platform guides

4 platforms

WordPress

Floating button (site-wide)

  1. Install a plugin like "Insert Headers and Footers" (by WPCode) or similar
  2. Open the plugin settings and find the "Footer" section
  3. Paste your script tag and save — the button appears on every page

Floating button (one page) or inline form

  1. Edit the page in the WordPress editor
  2. Add a "Custom HTML" block
  3. Paste the snippet (for inline, both the <div> and the <script>) and publish

Squarespace

Floating button

  1. Go to Settings → Advanced → Code Injection
  2. Paste the script tag in the "Footer" section and save

Inline form

  1. Edit your page and add a "Code" block
  2. Paste both the <div> and <script> tags and save

Wix

Floating button

  1. Go to Settings → Custom Code (under Advanced)
  2. Click "+ Add Custom Code" and paste the script tag
  3. Set placement to "Body - end", choose which pages, and click Apply

Inline form

  1. In the Wix Editor, add an "Embed a Widget" / "Custom Element"
  2. Choose "HTML iframe", paste the embed code, and resize to fit

Webflow

Floating button

  1. Go to Project Settings → Custom Code
  2. Paste the script in "Footer Code" and publish your site

Inline form

  1. Drag an "Embed" component onto your page
  2. Paste both the <div> and <script> tags and publish

White-label & branded portal

by plan
  • Free plan — your embeds show a small "Powered by FinishTax" badge.
  • Firm plan — toggle Hide Powered By on any embed, upload your firm logo, and set your brand color in Portal Settings.
  • Agency plan — full white-label plus a custom domain.

Branded portal subdomain

Claim your own yourfirm.finish.tax portal address in Portal Settings and share it anywhere — it carries your logo and colors, with nothing to install on your site.

Custom domain (Agency)

Serve your portal and embeds from your own domain:

  1. Choose a subdomain (e.g. intake.yourfirm.com)
  2. Add a CNAME record in your DNS:
intake.yourfirm.com CNAME finish.tax
  1. Contact support to activate your custom domain
  2. Once verified, your embed and portal load from your domain

Analytics

per embed

Every embed tracks its own funnel, so you can see which pages actually convert:

  • Page loads — how many times the page with your embed loaded
  • Opens — how many times clients opened the form
  • Submissions — completed submissions
  • Conversion rate — opens-to-submissions percentage
  • Path breakdown — Quick Drop vs Full Intake splits
  • Daily submissions — a bar chart of submissions over time
  • Top referrer pages — which pages on your site drive the most submissions

View analytics by clicking the chart icon on any embed, or click "View Analytics" in the install-code modal.

Troubleshooting

The button doesn't appear

  • The script tag must be inside the <body>, ideally just before </body>
  • Open your browser console (F12) and look for JavaScript errors
  • Some ad blockers block third-party scripts — test in an incognito window
  • Clear your site's cache and your browser cache

The form doesn't load in the modal

  • If you set domain restrictions, make sure your site's domain is listed
  • Check that your portal is active in Portal Settings
  • Your site must use HTTPS to embed the portal

Submissions don't appear in my dashboard

  • Check that your portal link is active
  • Ensure the embed ID matches the one in your FinishTax account
  • Check the embed analytics to see if events are being recorded

Embeds are available on every plan; hiding FinishTax branding unlocks on the Firm plan and custom domains on the Agency plan. See pricing for the full plan breakdown, or browse all integrations.

Put FinishTax on your site today

Start free, create your first embed, and paste one script tag. No credit card required to begin.