> For the complete documentation index, see [llms.txt](https://threadly.gitbook.io/threadly/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://threadly.gitbook.io/threadly/integrations/other-integrations.md).

# Other Integrations

Bonusly recognition Segments, Typeform imports and Webhook Actions, plus how to use tools without a native integration in Threadly.

All integrations live in **Settings → Integrations**, grouped into **Scheduling**, **Customer data**, and **Automation & webhooks**. Each shows its status (**Active**, **Needs attention** or **Not active**), and ones that need attention are listed first. Team-wide integrations are managed by Threadly admins. Calendly, Cal.com and Typeform are personal, so each person connects their own.

![Bonusly, Typeform and Webhook Actions at a glance](https://1884112744-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUolgIxuzQ3OCxgqEYVKM%2Fuploads%2FWSHI659UOoaRilorlT66%2Fthreadly-integrations.svg?alt=media)

## Bonusly

Build **user-based** [Dynamic Segments](/threadly/groups/dynamic-conversation-groups.md) from Bonusly recognition activity. For example, thank everyone who received an award this quarter, or nudge people who haven't recognized a teammate yet.

**Setup**

1. In Bonusly, create a **Personal Access Token** with the `user:read`, `recognition:read` and `awards:read` scopes (**Company → Integrations → API & Tokens**).
2. In Threadly, go to **Settings → Integrations → Bonusly**, click **Connect / Reconnect**, and paste the token.

**Filters:** has given recognition, has given an award, has received recognition, has received an award, or either. You can optionally narrow a filter to a specific award or recognition type, such as *Customer Hero*.

Bonusly users are matched to Slack members **by email**. Slack Connect members from other organizations aren't included.

## Typeform

Turn a Typeform you already have into a Threadly form you can send in Slack, and keep the answers from both places together.

**Setup**

1. Go to **Settings → Integrations → Typeform** and click **Connect Typeform**. Sign in with the Typeform account that owns your forms.
2. Click **Import a Typeform** and choose a form from the list.
3. Review what converts. Threadly tells you about any question it can't convert before you save.
4. Send the form in a message like any other [Threadly form](/threadly/actions/form-ctas.md).

**How it works**

* Typeform responses sync into the same Threadly form, so every answer lives in one place.
* Edit the form in Threadly and **push** the changes back to Typeform, or **pull** Typeform's latest version into Threadly. Questions that exist only in Typeform stay there.
* Linked forms are listed on the Typeform screen.
* **Disconnect** stops syncing. Your forms and their submissions stay in Threadly.

**Supported question types:** text, multi-line text, email, number, date, dropdown, radio buttons and display text.

## Webhook Actions

**Webhook Actions** connect external tools to Slack in both directions:

1. A tool sends a webhook to Threadly, for example *new Linear issue* or *new Zendesk ticket*.
2. Threadly posts a Slack message about it, with action buttons.
3. Someone clicks a button, such as **Assign to Me**, **Close Ticket** or **Issue Refund**. Threadly calls the tool's API and updates the message to show it's done.

Open **Settings → Integrations → Webhook Actions** and click **+ Create Webhook Action**. A three-step wizard walks you through it:

1. **Name and template:** start from a template for **Linear**, **GitHub**, **Jira**, **Intercom**, **Stripe** or **Zendesk**, or choose **Custom (blank)**.
2. **Message and channel:** write the message with `{{payload.field_name}}` placeholders, and choose a default channel. Optionally, choose a payload field that sets the channel, or a Slack user to DM.
3. **Buttons:** each button sends an HTTP request. Set the method, URL, headers and body using `{{payload.*}}`, `{{clicker.*}}` and `{{team.*}}` variables. You can also set a success message, show the button only when a payload field matches a value, or collect input in a popup before sending.

After saving, point your tool's webhook at the action's URL. Sign requests with the action's signing secret: HMAC-SHA256 of `<timestamp>.<raw body>`, sent as `X-Threadly-Timestamp` and `X-Threadly-Signature: sha256=<hex>`.

* **🔑 API Credentials:** store API keys once for your team, used as `{{team.key_name}}`. They're never shown to Slack users.
* **🔗 Connected Tools:** each person links their user ID in Linear, GitHub, Jira, Intercom or Zendesk, so buttons like **Assign to Me** act as them.
* Each action's menu lets you **Edit**, **View Events**, **Export Logs/Events (CSV)**, **Reveal Secret**, **Rotate Secret** or **Delete** it.

{% hint style="info" %}
Webhook Actions are rolling out gradually. If you don't see them, email <support@trythreadly.com> for early access.
{% endhint %}

## Tools without a native integration

* **Any scheduling or booking link** (for example SavvyCal): paste it into a [Link CTA](/threadly/actions/website-ctas/how-to-create-a-website-action.md).
* **Anything Zapier connects to:** use [Zapier & Webhooks](/threadly/integrations/zapier.md).
* **Your own systems:** use the [Inbound Webhook](/threadly/workflows/workflow-triggers/inbound-webhook.md) trigger or the **Send Webhook** workflow step.

Need an integration we don't have? Tell us at <support@trythreadly.com>.
