# Send public link submissions to another app

Start a Zap when someone submits, edits or abandons a form through its share link, and send the answers to email, Sheets, Slack or a CRM.

## Send public link submissions to another app

This guide builds a two-step Zap: a new submission to the Approval form sends an email. Swap the email step for Google Sheets, Slack or your CRM; the trigger side stays the same.

<p>
  You need a <a href="/guides/zapier/connect">formbase connection in Zapier</a> and a published form with a share link. A submission to a
  request link does not start these Zaps; see <a href="/guides/zapier/request-outcome">Act on a request's outcome</a> for that.
</p>

<h2 id="pick-the-trigger">1. Pick the trigger</h2>

<p>
  Create a Zap, choose <strong>formbase</strong> as the trigger app, and pick one of the three public link events:
</p>

Edit after submit</a> turned on for the form.',
      ],
    },
    {
      label: 'Public Link Submission Abandoned',
      cells: [
        'A respondent starts the form and leaves it unfinished for the time you choose, from 12 hours to 1 week.',
        'A Pro or Business plan, which saves <a href="/submissions-analytics/partial-submissions">partial submissions</a>.',
      ],
    },
  ]}
/>

<h2 id="choose-the-form">2. Choose the form</h2>

<p>
  Pick your account, click <strong>Continue</strong>, and choose the form under <strong>Form</strong>. For the Abandoned trigger, also set{' '}
  <strong>Consider submission abandoned after</strong>. formbase checks once an hour, so the Zap can start up to an hour after that time.
</p>

<h2 id="test-the-trigger">3. Test the trigger</h2>

<p>
  Click <strong>Continue</strong>, then <strong>Test trigger</strong>. Zapier loads a record such as{' '}
  <strong>Public Link Submission A</strong>. Open it to see the fields you can map:
</p>

> ℹ️ **The test record is a sample**
> <p>
>     It carries every question of the form with made-up answers, so you can map fields before anyone has submitted. Real runs carry the
>     respondent's answers. The sample has <strong>Test Event</strong> set to <code>true</code>; real submissions have <code>false</code>.
>   </p>

<p>Every answer appears twice:</p>

<ul>
  <li>
    <strong>answers</strong> holds the value a workflow compares: the <a href="/requests/field-keys">option key</a> of a choice, like
    <code>approve</code>, a number, a date.
  </li>
  <li>
    <strong>display</strong> holds the text a person reads: the option's label (<code>Approve</code>), a formatted date.
  </li>
</ul>

<p>
  Where a field key reads differently from its question title, the label names the key in parentheses:{' '}
  <strong>Your Decision (decision)</strong> is the question whose <a href="/requests/field-keys">field key</a> is <code>decision</code>.
  Once mapped, a field shows its key path, such as <strong>Data › Display › Decision</strong>.
</p>

<p>
  Use <strong>display</strong> in messages and <strong>answers</strong> in filters and lookups. The full shape of both is in the{' '}
  <a href="/developers/webhooks-reference">webhooks reference</a>.
</p>

<h2 id="map-the-fields">4. Add the action and map the fields</h2>

<p>
  Click <strong>Continue with selected record</strong> and add the action. This guide uses <strong>Email by Zapier</strong> ›{' '}
  <strong>Send Outbound Email</strong>. In each field, type <code>/</code> or click <strong>+</strong> and search for the question by its
  title:
</p>

<h2 id="publish-and-check">5. Publish and check a real run</h2>

<p>
  Click <strong>Publish</strong>. Open the form's share link, submit it, and open <strong>Zap history</strong> in Zapier. The run appears
  within seconds:
</p>

<p>Open the run to see the real answers the Zap received.</p>

<h2 id="troubleshooting">If the Zap does not start</h2>

<ul>
  <li>
    <strong>The form was submitted through a request link.</strong> That fires Request Completed, not Public Link Submission Created.
  </li>
  <li>
    <strong>The Zap is off.</strong> A draft never runs. Check the toggle next to the Zap's name.
  </li>
  <li>
    <strong>The Zap uses another connection.</strong> The trigger listens to the form in the workspace its connection points at.
  </li>
</ul>

<h2 id="next">Next</h2>

<div class="not-prose grid gap-3 sm:grid-cols-2 mb-8">
  - [Send a request from a Zap](/guides/zapier/send-a-request)
  - [Native integrations](/integrations/overview) — Slack, Sheets and Notion without Zapier.
</div>
