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

# Typeform Integration

> Issue a credential to everyone who submits a Typeform form, or only to those who pass your quiz.

The Typeform integration connects your Typeform account to your Hyperstack organization. With it you can:

* Map each Typeform form to a credential group.
* Pick which questions give the name and the email on the credential. Any question works, hidden fields too.
* Add a rule, so only some responses issue a credential. For example: **Score (quiz) is at least 8**.
* See every response on the **Logs** tab, with the credential it issued or the reason it issued nothing.

You sign in to Typeform once. Hyperstack adds the webhooks to your forms for you: you don't copy an API key or a URL, and you don't need Zapier.

![The Typeform extension page in Hyperstack Studio with the Connect button](https://mintcdn.com/hyperstack/ydL3YBFmVccBK0iY/images/typeform-overview.webp?fit=max\&auto=format\&n=ydL3YBFmVccBK0iY\&q=85\&s=e12a6aa620881d586c91ce2fb7dd605c)

## Before you start

* **Hyperstack:** any plan. You must be an administrator of the organization.
* **Typeform:** a Typeform account that can see the forms you want to use, on a Typeform plan that includes webhooks. Check your plan in Typeform.
* At least one [credential group](https://thehyperstack.com/docs/tutorials/credential-setup/creating-credential-group.md) with its design, or let **Sync forms** create them for you.

One Typeform account connects to one Hyperstack organization. Hyperstack sees every form that the Typeform account can see.

## Step 1: Connect Typeform

**1. Open the Typeform extension**

In the Studio, click **Add integration**, then **Typeform**, then **Connect**. Typeform opens in a new tab.

**2. Sign in and allow access**

Sign in to Typeform. Typeform shows **Hyperstack wants to connect to your Typeform account** and what Hyperstack asks for: **Forms** (view), **Webhooks** (view, create, edit and delete), **Account and workspaces** (view) and **Offline access**, so the connection keeps working. Click **Authorize**.

![Typeform asks you to allow Hyperstack to read your account and forms and to manage webhooks](https://mintcdn.com/hyperstack/ydL3YBFmVccBK0iY/images/typeform-consent.webp?fit=max\&auto=format\&n=ydL3YBFmVccBK0iY\&q=85\&s=f40af3b602c3d8d9a29513c1c61a50d0)

**3. Open your forms**

The tab comes back to Hyperstack on the **Typeform forms** page. It lists every form of your Typeform account.

## Step 2: Map your forms to credential groups

* To map one form, click **Choose group** on its row, type to search, and pick a credential group.
* To map many forms at once, click **Sync forms**. Hyperstack creates a credential group for each form that is not mapped yet, named after the form, with the design you pick.

![The group picker open on a Typeform form row](https://mintcdn.com/hyperstack/ydL3YBFmVccBK0iY/images/typeform-map-form.webp?fit=max\&auto=format\&n=ydL3YBFmVccBK0iY\&q=85\&s=df9adf9208b0db14c0dd7a5a982faca6)

## Step 3: Pick the name, the email and an optional rule

Each mapped form has a **Name and email** column. It says **Matched by label** until you pick. Then Hyperstack reads the **Email** question and a question named **Name** or **Full name** (or **First name** and **Last name**).

To pick the questions yourself, click the button in the **Name and email** column.

![The Name, email and rule dialog with First name and Last name for the name, Email for the email, and the rule Score (quiz) is at least 8](https://mintcdn.com/hyperstack/ydL3YBFmVccBK0iY/images/typeform-name-email-rule.webp?fit=max\&auto=format\&n=ydL3YBFmVccBK0iY\&q=85\&s=4eafcf64ce74769ae06042d4cecf5a43)

* **Name:** the question whose answer is the name on the credential.
* **Add to the name (optional):** a second question added after the first one. Use it for a **Contact info** block, which asks for the first name and the last name separately.
* **Email:** the question whose answer is the email address. Hyperstack sends the credential there. A hidden field works too, so you can put the email in the form's link.
* **Only issue when (optional):** pick a question, a comparison and a value.

| Comparison | Issues when the answer… |
| - | - |
| **is** | is the value (capital letters don't matter) |
| **is not** | is not the value |
| **contains** | has the value anywhere in it |
| **is at least** | is a number equal to or higher than the value |
| **is at most** | is a number equal to or lower than the value |

For a multiple-choice or dropdown question, Hyperstack compares the text of the option. A Yes/No question answers **yes** or **no**.

Click **Save**. The column shows what you picked, for example **First name + Last name · Email** and **Only if Score is at least 8**.

> [!TIP]
>
> A quiz with a pass mark: turn on scoring for the form in Typeform (**Logic → Score**). Then set the rule **Score (quiz) is at least** your pass mark.

## Step 4: Turn on auto-issue

Click **Turn on** under **Auto-issue on form submission**. Hyperstack adds one webhook to each mapped form in Typeform.

![Auto-issue on form submission is On, with three mapped forms](https://mintcdn.com/hyperstack/ydL3YBFmVccBK0iY/images/typeform-auto-issue.webp?fit=max\&auto=format\&n=ydL3YBFmVccBK0iY\&q=85\&s=4333c0687b39f94c59594d07512e83f0)

In Typeform, the webhook shows on the form's **Connect → Webhooks** tab, with an address on **api.thehyperstack.com** and **Webhook ON**. Don't change or delete it there: Hyperstack manages it.

![The Webhooks tab of a Typeform form with the webhook that Hyperstack added](https://mintcdn.com/hyperstack/ydL3YBFmVccBK0iY/images/typeform-webhook-in-typeform.webp?fit=max\&auto=format\&n=ydL3YBFmVccBK0iY\&q=85\&s=bcd5d36373cf1329dc44cd255bbd86e4)

Now, when someone submits a mapped form, they get that group's credential. Hyperstack issues and publishes it at once, and sends the email if the group sends one.

## Check what happened: the Logs tab

The **Logs** tab lists every response that Typeform sends, for 90 days.

![The Logs tab with issued and skipped responses](https://mintcdn.com/hyperstack/ydL3YBFmVccBK0iY/images/typeform-logs.webp?fit=max\&auto=format\&n=ydL3YBFmVccBK0iY\&q=85\&s=269b125e8c72a4449e2ee73c1bf867d2)

* **Issued:** a credential was created. Its ID shows in the **Credentials** column.
* **Skipped:** nothing was issued, and the line says why. For example: the rule wasn't met, the email answer isn't an email address, or the person already has a credential in that group.
* **Failed:** the call was refused, for example because its signature didn't match.

Click a row to see the full response that Typeform sent.

![One log entry: the rule wasn't met, with the response that Typeform sent](https://mintcdn.com/hyperstack/ydL3YBFmVccBK0iY/images/typeform-log-entry.webp?fit=max\&auto=format\&n=ydL3YBFmVccBK0iY\&q=85\&s=268ebdb526d8828d12be397234eae648)

## Good to know

* **One credential per email per group.** If a person submits the form again, nothing new is issued.
* **What Hyperstack keeps:** Typeform's sign-in tokens and the Typeform account's email. A credential keeps only the form, the response token and the time. Hyperstack doesn't copy the form answers into the credential.
* **Security:** each webhook is signed with a secret that only Hyperstack and Typeform know. Hyperstack refuses a call with a wrong signature.
* **Turn off auto-issue** to stop issuing but keep your mappings. Hyperstack removes the webhooks from your forms.
* **EU Responses Data Center:** if your Typeform account keeps responses in the EU data center (Typeform Enterprise), contact us before you connect.

## Disconnect Typeform

Click the **⋯** button at the top right of the Typeform page, then **Disconnect Typeform**. Hyperstack removes its webhooks from your forms in Typeform and deletes your mappings. Credentials you already issued stay as they are.

![The Disconnect Typeform dialog](https://mintcdn.com/hyperstack/ydL3YBFmVccBK0iY/images/typeform-disconnect.webp?fit=max\&auto=format\&n=ydL3YBFmVccBK0iY\&q=85\&s=5b067f7a62205739d87fcaeea41eebbb)

To also remove Hyperstack's access in Typeform, open your Typeform account settings and remove **Hyperstack** from the apps that have access.

## Troubleshooting

| What you see | What to do |
| - | - |
| **You cancelled the sign-in at Typeform** | Click **Connect** again and click **Authorize** at Typeform. |
| **Typeform didn't connect** | Click **Connect** again. If it happens again, sign out of Typeform, sign in, and try once more. |
| **Your Typeform connection expired** | Click **Reconnect** and sign in to Typeform again. This happens when the access was removed in Typeform. |
| A response is **Skipped**: "no email answer" or "no name answer" | Pick the questions in the **Name and email** column. |
| A response is **Skipped**: "is not an email address" | The question picked for the email got another answer. Pick the right question. |
| A response is **Skipped**: "The rule wasn't met" | The answer didn't pass the rule. Check the rule in the **Name and email** column. |
| A response is **Skipped**: "Auto-issue is off" | Turn on auto-issue. |
| **The mapping is saved, but Typeform didn't accept the form's webhook** | Your Typeform plan may not include webhooks, or the form was deleted. Check your plan in Typeform, then turn auto-issue off and on again. |

Questions or problems: [support@thehyperstack.com](mailto:support@thehyperstack.com).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.