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

# Zapier Integration: Automate Dohoo Social Publishing

> Automate Dohoo publishing workflows by connecting the REST API to 5,000+ apps using Zapier's Webhooks by Zapier action and custom header authentication.

Zapier is a no-code automation platform that connects more than 5,000 apps through simple two-step automations called Zaps. You can connect Dohoo to Zapier using the **Webhooks by Zapier** action, which lets you send authenticated HTTP requests to any REST API endpoint — including Dohoo's publishing and upload endpoints — without touching a line of code.

## How it works

Dohoo doesn't have a native Zapier app, but you don't need one. The **Webhooks by Zapier** action supports custom headers, JSON bodies, and all HTTP methods, so it maps directly to the Dohoo REST API. Set your trigger (a new file in Google Drive, a row in a Google Sheet, a form submission, etc.), configure the Webhooks action with your API key, and Zapier does the rest.

## Authentication

In the **Webhooks by Zapier** action, add your API key under **Headers**:

| Header name | Value                          |
| ----------- | ------------------------------ |
| `X-API-Key` | `api_xxxxxxxxxxxxxxxxxxxxxxxx` |

Zapier stores this alongside your Zap configuration. You'll add the same header to every Webhooks action step that calls a Dohoo endpoint.

## Example Zap: publish a new Google Drive video to YouTube

<Steps>
  <Step title="Trigger: New File in Google Drive">
    Choose **Google Drive** as your trigger app and select the **New File in Folder** event. Point it at the folder where you upload finished videos. Every new file in that folder will kick off the Zap.
  </Step>

  <Step title="Action: Webhooks by Zapier — POST to Dohoo publish endpoint">
    Add a **Webhooks by Zapier** action and configure it as follows:

    * **Method:** `POST`
    * **URL:** `https://dohoo.ai/api/v2/youtube/publish`
    * **Headers:** `X-API-Key: dh_live_xxxxxxxxxxxxxxxxxxxxxxxx`
    * **Data:** select **JSON** and paste the body below, substituting your own values

    ```json theme={null}
    {
      "fileId": "your-file-id",
      "connectionId": "your-youtube-connection-id",
      "title": "Video title",
      "description": "Video description"
    }
    ```

    Map `fileId` dynamically from an earlier step that retrieves the uploaded file's ID from Dohoo.
  </Step>
</Steps>

<Tip>
  Add a **Filter by Zapier** step between your trigger and the Webhooks action to restrict the Zap to specific file types (e.g., only `.mp4` files) or specific sub-folders. This prevents the Zap from firing on unfinished drafts or unrelated files in the same drive.
</Tip>

## Full upload + publish flow

If you're uploading a new file (rather than referencing one already in your Dohoo media library), your Zap needs three Webhooks steps:

| Step | Method | Endpoint                                    | Purpose                               |
| ---- | ------ | ------------------------------------------- | ------------------------------------- |
| 1    | `POST` | `/api/upload/presigned-url`                 | Get a presigned S3 URL and a `fileId` |
| 2    | `PUT`  | `{uploadUrl}` (from step 1)                 | Upload the binary file to S3          |
| 3    | `POST` | `/api/v2/youtube/publish` (or any platform) | Publish using the `fileId`            |

Use Zapier's **Data Mapper** or subsequent action steps to pass the `fileId` and `uploadUrl` returned in step 1 through to steps 2 and 3.

## Supported publish endpoints

| Platform    | Endpoint                    |
| ----------- | --------------------------- |
| Instagram   | `/api/v2/instagram/publish` |
| YouTube     | `/api/v2/youtube/publish`   |
| Facebook    | `/api/v2/facebook/publish`  |
| TikTok      | `/api/social/post`          |
| LinkedIn    | `/api/v2/linkedin/publish`  |
| Pinterest   | `/api/v2/pinterest/publish` |
| Threads     | `/api/v2/threads/publish`   |
| Twitter / X | `/api/v2/twitter/publish`   |

<Warning>
  Zapier's free plan limits the number of active Zaps and monthly task runs. If you're publishing at high volume or need multi-step Zaps with several Webhooks actions, consider using **n8n** or **Make** instead — both are better suited to complex, high-frequency pipelines.
</Warning>

<Note>
  API access is required to use Dohoo with Zapier. Upgrade to the **Business** or **Agency** plan to generate your `api_` API key.
</Note>
