> For the complete documentation index, see [llms.txt](https://help.distro.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.distro.so/routing-forms/pardot.md).

# Pardot forms

Connect Salesforce Account Engagement (Pardot) forms while keeping their native submission and thank-you redirect. Distro saves the answers temporarily and resumes routing on the thank-you page.

## Prepare and connect

Create a [form mapping](/routing-forms/overview.md) using the Pardot form's CSS selector and field names, then select it in the router's **Form Submission → Connected form**. Map email and all fields used by your rules. Select fields are captured using their displayed option labels.

Configure, test, and activate the router before testing the published form.

## A form on its own page

In **Install Router**, select **Pardot / Account Engagement**. Add the same snippet to the form page **and its thank-you page**:

```html
<script src="https://app.distro.so/inbound.js"></script>
<script>
  window.distro = new Distro({
    routerId: "YOUR_ROUTER_ID",
    formType: "pardot"
  });
  distro.schedule("#pardot-form");
</script>
```

Replace the router ID and form selector. Keep the same selector in the thank-you page's snippet even though that form is no longer present.

The form and thank-you pages must share an origin (scheme, hostname, and port) and allow session storage. On the thank-you page, the selected form and `.error` elements must be absent. Distro consumes the saved answers once; they expire after 15 minutes. Validation errors must remain on the form page.

## A Pardot form in an iframe

Choose **Pardot in an iframe** in **Install Router**. This requires two installations.

### 1. Parent website

Add this after the iframe markup and replace `#pardot-iframe` with the iframe's selector:

```html
<script src="https://app.distro.so/inbound.js"></script>
<script>
  window.distro = new Distro({
    routerId: "YOUR_ROUTER_ID",
    formType: "pardot"
  });
  distro.schedule("#pardot-iframe");
</script>
```

### 2. Pardot form and thank-you pages

Install the following on both pages inside the iframe. Replace the parent origin with your website's exact origin and the selector with the Pardot form's selector:

```html
<script src="https://app.distro.so/inbound.js"></script>
<script>
  window.distro = new Distro({
    routerId: "YOUR_ROUTER_ID",
    formType: "pardot",
    parentOrigin: "https://www.example.com"
  });
  distro.schedule("#pardot-form");
</script>
```

Use the same router ID in both snippets. If you pin `routerVersion`, use the same number on both sides. The form and thank-you pages inside the iframe must share an origin; the parent website may use a different origin. The iframe's configured `src` origin must match the page that sends the completion message.

The parent connects only to the configured iframe, and the child sends saved answers after a request from that parent. A thank-you redirect to another origin requires a separate integration.

## Verify

Submit valid and invalid answers. Confirm Pardot receives the valid submission, its thank-you page loads, and Distro routes the saved answers once. Check **Routing Logs** for the expected values and test both qualified and unqualified prospects.

If routing does not resume, check that both pages have the snippet, storage is available, and the thank-you page no longer contains the form or error elements. For an iframe, also check the selector, parent origin, iframe `src`, and router ID.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.distro.so/routing-forms/pardot.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
