> ## Documentation Index
> Fetch the complete documentation index at: https://helpdocs.gavel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Sharing Workflows

> Send a direct link, embed a workflow on your website, password-protect access, and white-label your Gavel account to match your firm's brand.

Once you've built a workflow in Gavel, you have several ways to get it in front of clients, colleagues, or the public. You can share a direct link by email, embed the workflow directly on your website, restrict access with a login requirement or password gate, and apply your firm's branding so that Gavel stays invisible to end users. This page covers all of those options.

## Sharing a workflow link

The quickest way to share a workflow is to copy its direct link and paste it wherever your clients will find it — an email, an intranet page, or a button on your website.

<Steps>
  <Step title="Open your Dashboard">
    Navigate to your Gavel Dashboard and find the workflow you want to share.
  </Step>

  <Step title="Copy the workflow link">
    Click the **three dots** (⋯) to the right of the workflow name and select **Copy workflow link**. The URL is now on your clipboard.
  </Step>

  <Step title="Share the link">
    Paste the URL into an email, an intranet page, or as the destination of a button on your website. When a recipient clicks the link, they are taken directly to the start of the workflow.
  </Step>
</Steps>

<Note>
  Any workflow that contains a Clio question or a private CSV will return an "Unauthorized" error for users who do not have Builder privileges. To share those workflows publicly, either remove the private data or promote those users to Builder.
</Note>

### Require login before starting

By default, anyone with the link can access your workflow. If you want answers saved to a user account — and want to be able to assign workflows back to specific people — you can require a login instead.

<Steps>
  <Step title="Open workflow Settings">
    Go to the **Settings** tab of your workflow, then click **Access Permissions**.
  </Step>

  <Step title="Enable login requirement">
    Change the access setting from **Anyone with Link** to **Only Logged-In Users** and save. You can further restrict access to specific email addresses or an entire email domain (for example, everyone at `@yourfirm.com`).
  </Step>

  <Step title="Share the link">
    Copy and share the workflow link as usual. When clients click it, they are taken to your Gavel sign-in page. New visitors can create an account, after which they will see the workflow you shared.
  </Step>
</Steps>

### Share from the middle of a workflow

Sometimes you want to fill in the first part of a workflow yourself and then hand it off to your client to complete the rest.

<Steps>
  <Step title="Enable continuation links">
    In the workflow **Settings**, enable the **Include Link for User to Continue Later** option.
  </Step>

  <Step title="Enter your data and hand off">
    Fill in the fields you want to pre-populate, then click **Save and Continue Later** inside the workflow. Enter the recipient's email address and Gavel will send them a link to pick up exactly where you left off.
  </Step>
</Steps>

***

## Embedding a workflow on your website

Customers on the **Pro** and **Scale** plans can embed any workflow directly into a web page using an `<iframe>`. Contact [help@gavel.io](mailto:help@gavel.io) to enable embedding for your account.

<Tabs>
  <Tab title="Basic embed">
    Replace `WORKFLOW URL HERE` with your workflow's URL and paste the snippet into your page HTML:

    ```html theme={null}
    <iframe style="width: 500px; height: 700px;" src="WORKFLOW URL HERE"></iframe>
    ```

    Adjust the `width` and `height` values to fit your layout.
  </Tab>

  <Tab title="Full-page embed">
    To have the workflow fill the entire browser window, use this full-page snippet:

    ```html theme={null}
    <html>
      <head>
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
        <style type="text/css">
          html { margin: 0; height: 100%; overflow: hidden; }
          iframe { position: absolute; left: 0; right: 0; bottom: 0; top: 0; border: 0; }
        </style>
      </head>
      <body>
        <iframe width="100%" height="100%" frameborder="0" src="WORKFLOW URL HERE"></iframe>
      </body>
    </html>
    ```
  </Tab>

  <Tab title="WordPress">
    For responsive resizing on WordPress, use the following snippet (requires a Business Plan subscription on WordPress.com):

    ```html theme={null}
    <iframe id="sizetracker" style="height: 100%" src="WORKFLOW URL"></iframe>
    <script type="text/javascript">
      window.addEventListener("message", function(e) {
        var this_frame = document.getElementById("sizetracker");
        if (this_frame.contentWindow === e.source) {
          this_frame.height = e.data.height + "px";
          this_frame.style.height = e.data.height + "px";
        }
      });
    </script>
    ```
  </Tab>

  <Tab title="Squarespace">
    Use this snippet for Squarespace — it handles both height and width responsiveness:

    ```html theme={null}
    <iframe id="sizetracker" style="height: 100%" src="WORKFLOW URL HERE"></iframe>
    <script type="text/javascript">
      window.addEventListener("message", function(e) {
        var this_frame = document.getElementById("sizetracker");
        if (this_frame.contentWindow === e.source) {
          this_frame.height = e.data.height + "px";
          this_frame.style.height = e.data.height + "px";
          this_frame.width = "100%";
          this_frame.style.width = "100%";
        }
      });
    </script>
    ```

    In the Squarespace editor, click **+ ADD BLOCK**, choose **Embed** or **Code**, click the pencil icon, and paste the snippet.
  </Tab>
</Tabs>

<Warning>
  Safari on iOS blocks embedded content from cross-site origins by default (the "Prevent Cross-Site Tracking" setting). Users can disable that setting manually, or you can set up a custom subdomain — once your workflow runs on the same domain as the embedding page, Safari restrictions no longer apply.
</Warning>

***

## Password protecting a workflow

Gavel doesn't have a single password field in Settings, but you can build a lightweight gate using a Kickout Page.

<Steps>
  <Step title="Create a password question">
    Add a **Text Question** to your workflow and label it something like "Enter password." This is where users will type the passcode.
  </Step>

  <Step title="Create a Kickout Page">
    Add a **Kickout Page** question immediately after. This page will appear when the password is wrong.

    In the **Page Logic** for the Kickout Page, set the rule to **Hide If** the password matches the correct value. For example, if your password is `LegalAccess2024`, set the Kickout Page to *Hide If password is LegalAccess2024*.
  </Step>

  <Step title="Test the gate">
    Run the workflow and verify that entering the wrong password displays the Kickout Page, while entering the correct password hides it and allows the user to continue.
  </Step>
</Steps>

***

## Setting up a custom domain

By default your Gavel account lives at `yourname.gavel.io`. Accounts on the **Pro** and **Scale** plans can map a custom subdomain — for example, `documents.yourfirm.com` — so that the Gavel name never appears in your URLs.

<Note>
  Gavel workflows must reside on their own subdomain. If your main site is at `www.yourfirm.com`, your workflows must be at a different subdomain such as `docs.yourfirm.com` — not at `www.yourfirm.com` itself.
</Note>

<Steps>
  <Step title="Note your Gavel subdomain">
    When you created your Gavel account you were assigned a `.gavel.io` subdomain — for example, `yourfirm.gavel.io`. This is your ANAME record.
  </Step>

  <Step title="Choose your custom subdomain">
    Decide on the subdomain you want to use, for example `docs.yourfirm.com`.
  </Step>

  <Step title="Create a CNAME record">
    Log in to your DNS provider (Cloudflare, GoDaddy, Name.com, etc.) and create a CNAME record:

    | Field  | Value               |
    | ------ | ------------------- |
    | Type   | CNAME               |
    | Host   | `docs.yourfirm.com` |
    | Answer | `yourfirm.gavel.io` |
    | TTL    | 300                 |

    Some providers (like GoDaddy) only want the subdomain portion for the Host field — `docs` rather than the full `docs.yourfirm.com`.
  </Step>

  <Step title="Notify Gavel">
    Email [help@gavel.io](mailto:help@gavel.io) with your custom subdomain URL. Allow up to 24 hours (usually less than one hour) for DNS propagation.
  </Step>
</Steps>

<Tip>
  On the **Scale** plan you can also send Gavel's automated emails from your own domain via Mailgun. Email [help@gavel.io](mailto:help@gavel.io) with your Mailgun email address, API key, and domain to get that configured.
</Tip>

***

## White-labeling and branding

Gavel gives you several options to make the platform look like your own product rather than a third-party tool.

<AccordionGroup>
  <Accordion title="Upload your firm logo">
    Under the **Standard**, **Pro**, and **Scale** plans, you can display your own logo in the top-left corner of every workflow. Go to **System Settings** in your Dashboard and upload an image — ideally 200 × 26 pixels.

    From the same **System Settings** page you can also upload a custom favicon that appears in the browser tab for all of your Gavel workflows.
  </Accordion>

  <Accordion title="Customize your introductory page">
    By default, your `yourname.gavel.io` subdomain shows a standard Gavel intro message. You can replace this with any content you choose. Email [help@gavel.io](mailto:help@gavel.io) with the desired text and layout and the team will set it up for you.
  </Accordion>

  <Accordion title="Create a custom client-facing page">
    If you want clients to land on a branded page that lists all the workflows available to them, Gavel can build that for you. Email [help@gavel.io](mailto:help@gavel.io) with your requirements.
  </Accordion>

  <Accordion title="Change your subdomain">
    Your Gavel subdomain (e.g., `yourfirm.gavel.io`) cannot be changed after account creation. However, setting up a custom domain as described above achieves the same result — your workflows will appear under your own domain with no mention of Gavel in the URL.
  </Accordion>
</AccordionGroup>

***

## Customizing messages and emails

Every on-screen message and automated email that Gavel sends to your users can be rewritten to match your firm's voice. You can include variable names in any message to personalize them dynamically.

<Steps>
  <Step title="Open workflow Settings">
    Navigate to the **Settings** tab of the workflow you want to customize.
  </Step>

  <Step title="Open Customize Messages">
    Click **Settings**, then **Customize Messages**.
  </Step>

  <Step title="Edit the messages">
    Toggle between **Questionnaire messages** (displayed on screen) and **Email messages** (sent automatically). Edit the text, add bold or italic formatting, or include multiple paragraphs. Use variable names — such as `${ clientname }` — to insert personalized values.
  </Step>
</Steps>

<Tip>
  To include a file upload in a confirmation email or on the final screen, use this syntax — replacing `Display Name` and `FileUploadVariable` with your own values:

  ```text theme={null}
  [Display Name](${ FileUploadVariable.url_for(external=True) })
  ```

  Add `Private=False` if the link should be accessible to users who are not signed in:

  ```text theme={null}
  [Display Name](${ FileUploadVariable.url_for(external=True, Private=False) })
  ```
</Tip>
