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

# Tally Integration

> Issue a credential to everyone who submits a Tally form, or only to those who pass a rule, such as a quiz score.

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

* Map each Tally 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 is at least 15**.
* See every response on the **Logs** tab, with the credential it issued or the reason it issued nothing.

Hyperstack adds the webhooks to your forms for you. You don't copy any URL into Tally, and you don't need Zapier.

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

## Before you start

* **Hyperstack:** any plan. You must be an administrator of the organization.
* **Tally:** any plan, free included. API keys and webhooks are free in Tally.
* 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 Tally account connects to one Hyperstack organization. Hyperstack sees every form that the Tally account can see.

## Step 1: Create an API key in Tally

**1. Open Settings → API keys**

Sign in to Tally and open [Settings → API keys](https://tally.so/settings/api-keys).

![The API keys tab in Tally settings with the Create API key button](https://mintcdn.com/hyperstack/X8XGqEIWpNyfoTjv/images/tally-api-keys.webp?fit=max\&auto=format\&n=X8XGqEIWpNyfoTjv\&q=85\&s=397690ca95589bae97f1afe3375187bc)

**2. Create the key**

Click **Create API key**, name it **Hyperstack**, and click **Create**.

**3. Copy the key**

Click the eye to show the key, then copy it. Tally shows the key only once.

![The View API key dialog in Tally, with the key hidden in this picture](https://mintcdn.com/hyperstack/X8XGqEIWpNyfoTjv/images/tally-api-key-created.webp?fit=max\&auto=format\&n=X8XGqEIWpNyfoTjv\&q=85\&s=f406bb8af4c64eefb85b82b63e1d64c6)

## Step 2: Connect Tally to Hyperstack

**1. Open the Tally extension**

In the Studio, click **Add integration**, then **Tally**, then **Connect**.

**2. Paste the key**

Paste the key into **Tally API key** and click **Connect Tally**. Hyperstack checks the key with Tally before it saves anything.

![The Connect Tally setup page with three steps and the Tally API key field](https://mintcdn.com/hyperstack/X8XGqEIWpNyfoTjv/images/tally-setup.webp?fit=max\&auto=format\&n=X8XGqEIWpNyfoTjv\&q=85\&s=41c4ef77a2f3aee26c88591c940ad8b7)

**3. Open your forms**

The page says **Tally is connected**. Click **Map forms**.

![Tally is connected, with the Map forms button](https://mintcdn.com/hyperstack/X8XGqEIWpNyfoTjv/images/tally-connected.webp?fit=max\&auto=format\&n=X8XGqEIWpNyfoTjv\&q=85\&s=c91a24063b5ab56452818e366306ecb2)

## Step 3: Map your forms to credential groups

The **Tally forms** page lists every form of your Tally account.

* 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 Tally form row](https://mintcdn.com/hyperstack/X8XGqEIWpNyfoTjv/images/tally-map-form.webp?fit=max\&auto=format\&n=X8XGqEIWpNyfoTjv\&q=85\&s=76a3181d8214045460b377b081b8ea52)

## Step 4: 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 an **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, Work email for the email, and the rule Score is at least 15](https://mintcdn.com/hyperstack/X8XGqEIWpNyfoTjv/images/tally-name-email-rule.webp?fit=max\&auto=format\&n=X8XGqEIWpNyfoTjv\&q=85\&s=65a55a5191fa931b64df48920702c3fc)

* **Name:** the question whose answer is the name on the credential.
* **Add to the name (optional):** a second question added after the first one, for a form that 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 dropdown or multiple-choice question, Hyperstack compares the text of the option.

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

> [!TIP]
>
> A quiz with a pass mark: add a **Score** calculated field in Tally, then set the rule **Score is at least** your pass mark.

## Step 5: Turn on auto-issue

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

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

In Tally, the webhook shows on the form's **Integrations** tab. Don't change or delete it there: Hyperstack manages it.

![The Integrations tab of a Tally form with the webhook that Hyperstack added](https://mintcdn.com/hyperstack/X8XGqEIWpNyfoTjv/images/tally-webhook-in-tally.webp?fit=max\&auto=format\&n=X8XGqEIWpNyfoTjv\&q=85\&s=9b8c30ddd0a0b17e8610c604414ede91)

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 Tally sends, for 90 days.

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

* **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 Tally sent.

![One log entry with the reason and the response that Tally sent](https://mintcdn.com/hyperstack/X8XGqEIWpNyfoTjv/images/tally-log-entry.webp?fit=max\&auto=format\&n=X8XGqEIWpNyfoTjv\&q=85\&s=f6155f9c180ae98ac90eda157d2b256b)

## Good to know

* **One credential per email per group.** If a person submits the form again, nothing new is issued.
* **What Hyperstack keeps:** your API key and the Tally account's email. A credential keeps only the form, the response ID 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 Tally 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.

## Disconnect Tally

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

![The Disconnect Tally dialog](https://mintcdn.com/hyperstack/X8XGqEIWpNyfoTjv/images/tally-disconnect.webp?fit=max\&auto=format\&n=X8XGqEIWpNyfoTjv\&q=85\&s=c45e9982372792711c9902442bce17ee)

## Troubleshooting

| What you see | What to do |
| - | - |
| **Tally didn't accept this API key** | Copy the key again from Settings → API keys in Tally. A key stops working when its user leaves the Tally organization. |
| **Tally is already connected** | Disconnect Tally first to use another key. |
| 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 Tally didn't accept the form's webhook** | 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.