> For the complete documentation index, see [llms.txt](https://academy.shade.inc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://academy.shade.inc/guides/automations/connect-shade-to-other-tools-with-webhooks.md).

# Connect Shade to other tools with webhooks

Start Shade automations from any tool with a webhook, and send data from Shade to any API with an HTTP request.

**Outcome:** two-way connections between Shade and the rest of your stack. Your project tool can start a Shade automation, and Shade can post updates back to it, without writing a service of your own.

**Who it's for:** ops-minded producers and technical team members connecting Shade to a project tracker, a CMS, Slack, or an internal tool. If you'd rather write code, see the [Developers](/guides/developers.md) guides.

**Time:** about 20 minutes per connection.

## Before you start

* Build [Your first automation](/guides/automations/your-first-automation.md) first if you haven't used the automation editor.
* Have the other tool's documentation open. You'll need either its outgoing-webhook settings or the API endpoint you want to call.

## Part 1: start an automation from another tool

This example creates a project folder whenever a new project is created in your tracker.

{% stepper %}
{% step %}

### Add a Webhook Received trigger

Create an automation and choose **Webhook Received**. Shade shows a webhook URL for this automation. Leave **Require authentication** on. Shade generates an **Auth token**, and incoming requests must send it as a bearer token.
{% endstep %}

{% step %}

### Point the other tool at it

In the other tool's outgoing-webhook or automation settings, paste the URL and add an `Authorization` header with the value `Bearer` followed by the token. Have it send a JSON body, for example:

```json
{ "project_name": "ACME Spring Campaign" }
```

{% endstep %}

{% step %}

### Use the payload in your steps

Add **Create folder**. In **Path**, type `Projects/`, then type `{` and choose `project_name` from the trigger's **payload**. Choose a **Folder template** to build the standard structure inside the new folder.

Send one test request from the other tool before you finish this step. The fields in the payload are easier to pick once Shade has seen a real one.
{% endstep %}

{% step %}

### Save and activate

Click **Save**, then **Activate**, and create a test project in the other tool.
{% endstep %}
{% endstepper %}

## Part 2: send data from Shade to another tool

This example posts a message to a Slack incoming webhook whenever a comment is resolved.

{% stepper %}
{% step %}

### Choose the Shade event

Create an automation and choose the event that matters, here **Comment Resolved**.
{% endstep %}

{% step %}

### Add Send HTTP Request

* **Method:** POST
* **URL:** the other tool's endpoint, here your Slack incoming-webhook URL
* **Headers:** whatever the API requires, for example an `Authorization` header with an API key
* **Body:** JSON, with variables from the trigger. For Slack:

```json
{ "text": "A comment was resolved on ASSET_NAME" }
```

Replace `ASSET_NAME` with a variable: delete it, type `{`, and choose the asset's name from the trigger. Insert other values from earlier steps the same way.
{% endstep %}

{% step %}

### Use the response if you need it

The request's response is available to later steps. For example, you can store an ID the other tool returns in a Shade metadata field with **Update Asset Metadata**.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
A non-2xx response from the other tool doesn't stop the automation on its own. If later steps depend on the request succeeding, add an **If / Else** on the request's **status** output.
{% endhint %}

## Variations

* **No-code connector:** if the other tool is on Zapier, you may not need webhooks at all. See [Zapier Integration](https://academy.shade.inc/workspaces-and-drives/zapier-integration).
* **Event subscriptions for developers:** to receive Shade events in your own service, see [Webhooks](https://academy.shade.inc/developers/webhooks).

## Related guides

* [Create a folder for every new project](/guides/custom-objects-and-metadata/create-a-folder-for-every-new-project.md)
* [Use the Shade MCP with Claude or Cursor](/guides/search-ai-and-archives/use-the-shade-mcp-with-claude-or-cursor.md)
* [Developers](/guides/developers.md)


---

# 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 following URL with the `ask` and `goal` query parameters:

```
GET https://academy.shade.inc/guides/automations/connect-shade-to-other-tools-with-webhooks.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

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.
