> ## 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.

# Jotform Integration

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

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

* Map each Jotform 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 submissions issue a credential. For example: **Score is at least 8**.
* See every submission on the **Logs** tab, with the credential it issued or the reason it issued nothing.

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

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

## Before you start

* **Hyperstack:** any plan. You must be an administrator of the organization.
* **Jotform:** a Jotform account. The API and webhooks are on every Jotform plan, the free Starter plan included. EU and HIPAA accounts work too.
* 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 Jotform account connects to one Hyperstack organization. Hyperstack sees every form of that Jotform account.

## Step 1: Connect Jotform

**1. Open the Jotform extension**

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

![The Connect Jotform page with the Connect Jotform button and the Or paste an API key panel](https://mintcdn.com/hyperstack/gLu16DW6YFuDVxrq/images/jotform-setup.webp?fit=max\&auto=format\&n=gLu16DW6YFuDVxrq\&q=85\&s=ca071e2ea447f6c632f5e6034f5aad99)

**2. Sign in to Jotform and allow Hyperstack**

Click **Connect Jotform**. A window opens with Jotform's own sign-in. Sign in to Jotform (if you are already signed in, this step is skipped).

![Jotform's sign-in page in the Sign in to Jotform window](https://mintcdn.com/hyperstack/gLu16DW6YFuDVxrq/images/jotform-sign-in.webp?fit=max\&auto=format\&n=gLu16DW6YFuDVxrq\&q=85\&s=b143034c73001baee5fea932e9f20f41)

Jotform then shows **Authorize Hyperstack to access your Jotform account**, with what Hyperstack can do: read your user details, your form details and your form submissions, edit your form submissions and add submissions. Click **Allow**. Jotform gives Hyperstack an API key for your account, so you have nothing to copy.

![Jotform asks you to authorize Hyperstack to access your Jotform account, with the Allow button](https://mintcdn.com/hyperstack/zw1pkJpP8viAI0Oy/images/jotform-allow.webp?fit=max\&auto=format\&n=zw1pkJpP8viAI0Oy\&q=85\&s=1a8c2d0fc949d8804359c3c235c0b1e4)

**3. Open your forms**

The page says **Jotform is connected**, with the email of your Jotform account. Click **Map forms**. The **Jotform forms** page lists every form of your Jotform account.

### Or paste an API key

Use this if the sign-in window doesn't work for you. Some browsers block a sign-in inside a window of another site, and Google sign-in can refuse it.

1. In Jotform, open **Settings → API** ([jotform.com/myaccount/api](https://www.jotform.com/myaccount/api)).
2. Click **Create New Key**. Set its permission to **Full Access**. Hyperstack needs full access to add the webhooks to your forms.
3. Copy the key.
4. On the **Connect Jotform** page, click **Or paste an API key**, paste the key into **Jotform API key**, and click **Connect with this key**.

![The Or paste an API key panel with the Jotform API key field](https://mintcdn.com/hyperstack/gLu16DW6YFuDVxrq/images/jotform-paste-key.webp?fit=max\&auto=format\&n=gLu16DW6YFuDVxrq\&q=85\&s=ec2b6e6c5b19f6baef669cc0c5906f58)

Hyperstack checks the key with Jotform before it saves anything. It never shows the key again.

## 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 Jotform form row](https://mintcdn.com/hyperstack/LdyWUQlwxqz4IpkI/images/jotform-map-form.webp?fit=max\&auto=format\&n=LdyWUQlwxqz4IpkI\&q=85\&s=8c03bd494ecf1a35db3362ba6e8695dd)

## 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 form's **Email** question and its **Full Name** question (or questions named **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 Full Name for the name, Email for the email, and the rule Score is at least 8](https://mintcdn.com/hyperstack/LdyWUQlwxqz4IpkI/images/jotform-name-email-rule.webp?fit=max\&auto=format\&n=LdyWUQlwxqz4IpkI\&q=85\&s=2a18bfaa228e6e99936a37194306ea0f)

* **Name:** the question whose answer is the name on the credential. A **Full Name** question gives the first and the last name together.
* **Add to the name (optional):** a second question added after the first one. Use it for a form that asks for the first name and the last name in two questions.
* **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. For a question with more than one answer, such as check boxes, the answers are joined with commas.

Click **Save**. The column shows what you picked, for example **Full Name · Email** and **Only if Score is at least 8**.

> [!TIP]
>
> A quiz with a pass mark: in Jotform, give each answer a calculation value (for example 10 for the right answer and 0 for the others) and add a **Form Calculation** field, named **Score**, that adds up the questions. Then set the rule **Score 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 Jotform.

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

In Jotform, the webhook shows in the form builder under **Settings → Integrations → Webhooks**, which says **Integration up and running!**. Don't edit or remove it there: Hyperstack manages it. Your own webhooks on the form stay as they are.

![The Webhooks integration of a Jotform form, up and running](https://mintcdn.com/hyperstack/zw1pkJpP8viAI0Oy/images/jotform-webhook-in-jotform.webp?fit=max\&auto=format\&n=zw1pkJpP8viAI0Oy\&q=85\&s=e2a6ea152ae06696a87bb2bf7f86d47e)

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 submission that Jotform sends, for 90 days.

![The Logs tab with issued and skipped submissions](https://mintcdn.com/hyperstack/LdyWUQlwxqz4IpkI/images/jotform-logs.webp?fit=max\&auto=format\&n=LdyWUQlwxqz4IpkI\&q=85\&s=5079a7092c90bc6a7c7819205a0ce790)

* **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 it came to an old webhook address.

Click a row to see the full submission that Jotform sent.

![One log entry: an issued credential, with the submission that Jotform sent](https://mintcdn.com/hyperstack/LdyWUQlwxqz4IpkI/images/jotform-log-entry.webp?fit=max\&auto=format\&n=LdyWUQlwxqz4IpkI\&q=85\&s=853cad1c54b7372752d8d529e8f417be)

## Good to know

* **One credential per email per group.** If a person submits the form again, nothing new is issued.
* **What Hyperstack keeps:** an API key for your Jotform account and the account's email. A credential keeps only the form, its name and the submission ID. Hyperstack doesn't copy the form answers into the credential.
* **Security:** Jotform doesn't sign its webhooks, so each webhook address has a secret of its own. When you disconnect, the secret is deleted, and Hyperstack refuses calls to the old address.
* **Encrypted forms** can't issue credentials: Jotform sends their answers encrypted.
* **API limits:** Jotform's free plan allows 1,000 API calls a day. Hyperstack uses a few when you open the forms page or map a form, and none for a submission once you've picked the name and email questions.
* **Turn off auto-issue** to stop issuing but keep your mappings. Hyperstack removes the webhooks from your forms.

## Disconnect Jotform

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

![The Disconnect Jotform dialog](https://mintcdn.com/hyperstack/LdyWUQlwxqz4IpkI/images/jotform-disconnect.webp?fit=max\&auto=format\&n=LdyWUQlwxqz4IpkI\&q=85\&s=8e53b4d74b2bd4bdc8dd850e41e3a542)

To also remove Hyperstack's key in Jotform, open **Settings → API** in Jotform and delete the key.

## Troubleshooting

| What you see | What to do |
| - | - |
| **Jotform wasn't connected** | You clicked **Deny** in the Jotform window. Click **Connect Jotform** again and click **Allow**, or paste an API key. |
| The Jotform window doesn't sign you in | Paste an API key instead (see [Or paste an API key](#or-paste-an-api-key)). |
| **Jotform didn't accept this API key** | Copy the key again from **Settings → API** in Jotform. |
| **The mapping is saved, but Jotform didn't accept the form's webhook** | A key with **Read Access** can't add webhooks. Create a **Full Access** key, disconnect Jotform and connect again with it. Otherwise, turn auto-issue off and on again. |
| A submission is **Skipped**: "no Email question" or "no name answer" | Pick the questions in the **Name and email** column. |
| A submission is **Skipped**: "is not an email address" | The question picked for the email got another answer. Pick the right question. |
| A submission is **Skipped**: "The rule wasn't met" | The answer didn't pass the rule. Check the rule in the **Name and email** column. |
| A submission is **Skipped**: "encrypted" | The form is encrypted, so Jotform sends no answers that Hyperstack can read. Use a form without encryption. |
| A submission is **Skipped**: "Auto-issue is off" | Turn on auto-issue. |

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.