# Zapier and Make.com — Wouldliker workflow

Same shape as the n8n template, just configured in each tool's native HTTP step. No SDK, no auth.

> Public proof is evidence of fit and momentum, not a guarantee of views.

---

## Zapier

### Zap structure

```
[Trigger of your choice]  →  Webhooks: POST /api/recommend  →  Webhooks: POST /api/brief  →  [Your downstream step]
```

### Step 1 — Recommend sound

- **App:** Webhooks by Zapier
- **Action:** POST
- **URL:** `https://wouldliker.com/api/recommend`
- **Payload type:** JSON
- **Data:**
  - `description` (from trigger)
  - `platform` = `tiktok`
  - `content_type` = `product_reveal` (or `vlog`, `explainer`, `beauty`, `football`)
  - `duration_seconds` = `22`
  - `language` = `en`
  - `is_aigc` = `false` (set `true` if your clip is AI-generated)
- **Headers:** `Content-Type: application/json`
- **Use downstream:** `primary_sound__sound_slug`, `primary_sound__tiktok_sound_url`, `why`, `proof_examples`, `copy_boundary`

### Step 2 — Generate brief

- **App:** Webhooks by Zapier
- **Action:** POST
- **URL:** `https://wouldliker.com/api/brief`
- **Payload type:** JSON
- **Data:**
  - `sound_slug` = `{{Step 1 → primary_sound__sound_slug}}`
  - `description` = (same as Step 1)
  - `platform` = `tiktok`
  - `duration_seconds` = `22`
  - `language` = `en`
  - `is_aigc` = (same as Step 1)
- **Use downstream:** `clip_brief`, `caption_pack__short`, `caption_pack__mid`, `caption_pack__with_hashtags`, `hashtag_pack`, `aigc_disclosure_block`

### Step 3 — Use it

Pipe `primary_sound__tiktok_sound_url` and `caption_pack__with_hashtags` into the post-composition step of your existing TikTok upload, Buffer, Later, Notion, or Slack flow.

### Common patterns

- **Shopify trigger:** "New product in collection" → derive description from product title + body → recommend → brief → write back to product metafield.
- **RSS trigger:** "New item in feed" → headline as description for daily-vlog content.
- **Webhook trigger:** any external system handing in a clip description.

---

## Make.com (formerly Integromat)

### Scenario structure

```
[Trigger]  →  HTTP: Make a request (recommend)  →  HTTP: Make a request (brief)  →  [Your downstream module]
```

### Module 1 — Recommend sound

- **Module:** HTTP → Make a request
- **URL:** `https://wouldliker.com/api/recommend`
- **Method:** POST
- **Body type:** JSON (application/json)
- **Request content (raw):**
  ```json
  {
    "description":      "{{1.description}}",
    "platform":         "tiktok",
    "content_type":     "product_reveal",
    "duration_seconds": 22,
    "language":         "en",
    "is_aigc":          false
  }
  ```
- **Parse response:** Yes

### Module 2 — Generate brief

- **Module:** HTTP → Make a request
- **URL:** `https://wouldliker.com/api/brief`
- **Method:** POST
- **Body type:** JSON
- **Request content (raw):**
  ```json
  {
    "sound_slug":       "{{2.primary_sound.sound_slug}}",
    "description":      "{{1.description}}",
    "platform":         "tiktok",
    "duration_seconds": 22,
    "language":         "en",
    "is_aigc":          {{1.is_aigc}}
  }
  ```
- **Parse response:** Yes

### Built-in tips

- Use Make's **iterator** if your trigger delivers multiple products at once.
- Use a **router** with one branch per `content_type` if your pipeline handles mixed clip types.
- The two HTTP calls are cheap (POST under 200ms typical); no need to cache.

---

## Boundary reminders

- Wouldliker does **not** auto-post to TikTok. Your final downstream module is the one that posts.
- Wouldliker does **not** return audio bytes. `tiktok_sound_url` is a reference to TikTok's hosted sound page; the published video natively uses it.
- Always surface `copy_boundary` in any UI that displays a Wouldliker recommendation back to the user.
- For AI-generated clips, set `is_aigc: true`. The publisher files the AIGC label at upload.
