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

# Zapier Webhook Generic

> The escape hatch — fire a generic webhook (Rewst workflow, custom automation, homegrown endpoint) from a skill or ticket when no named Zapier app covers the target system, with payload discipline, secret-free URLs, and honest response handling. Use for "trigger the Rewst flow for this", "POST this to our automation endpoint", or wiring a skill to any system reachable only by webhook.

<Info>
  **Category:** Connectors · [View source ↗](https://github.com/bryan-getthread/skills/blob/main/skills/connectors/zapier-webhook-generic/SKILL.md)
</Info>

**Connectors:** `Zapier: Webhooks by Zapier`

**Role:** [Service & Ops Manager](/start-here/roles/service-ops-manager), [Technician](/start-here/roles/technician)

**Outcome:** Time & Cost Savings (Capacity)

**When to use:** "Kick off our Rewst onboarding workflow from this ticket," "POST the alert payload to \<internal system>'s endpoint," or bridging to any system where a webhook is the only integration surface.

**Run it:** on one ticket.

## Prompt

```
When the target system has no Zapier app — a Rewst workflow, an internal automation server, a
vendor's inbound hook — a raw webhook is the last-resort transport. Powerful and structureless: no
field validation, no find-before-create, no vendor semantics. Impose the structure the transport
lacks: a documented endpoint, a disciplined payload, secret-free handling, and honesty about what a
200 does and does not prove. This is the escape hatch, not the default — when a named Zapier app
covers the target, use it (apps carry validation and lookups raw webhooks lack).

This runs only if the member has connected Zapier with the Webhooks action enabled — treat its
availability as deliberate: it can call any URL, so curated-server tenants may have excluded it on
purpose. If it's absent, degrade by outputting the composed payload and endpoint name for the member
to fire from their automation platform, and note the pending trigger on the ticket — do not stop.
Each Zapier call = 2 Zapier tasks.

1. Verify before promising: confirm the Webhooks action (POST/PUT/GET) is enabled for this tenant,
   then verify the endpoint is a known, documented one — the member or tenant runbook supplies the
   URL, method, content type, and payload contract. No documented contract → stop; guessing a payload
   triggers automations with guessed data. Documented endpoints only — never fire at URLs improvised
   from memory or scraped from old tickets.
2. Secret-free URLs and headers: auth material belongs in the tenant's stored config (curated-server
   locked fields, or the receiving system's own validation) — never inline in output, never pasted
   into a ticket note. If the endpoint's design forces a secret-bearing URL, treat the whole URL as a
   credential: use it, don't quote it.
3. Compose the payload with discipline: exactly the fields the contract specifies — stable names,
   ISO-8601 timestamps, the Thread ticket reference for traceability, explicit nulls, and an
   idempotency-friendly key (ticket number + event type) where retries are possible. No padding; client
   data is bound by the same minimum-necessary, no-credentials sanitization as any external write.
4. Show me the endpoint (by name, not secret-bearing URL), method, and full payload before firing.
5. Fire the webhook and read the response honestly. A 2xx means the endpoint accepted the request, NOT
   that the downstream automation succeeded — report it exactly that way ("the workflow endpoint
   accepted the trigger", never "the onboarding completed"). Capture any returned job/run ID. Non-2xx
   or timeout → report the actual status and body (minus secrets); do NOT retry blindly (it may have
   processed despite the error) — duplicate triggers do real work twice.
6. Leave a note (plain text): endpoint name, what was sent (summary, not secret detail), response
   status, any returned ID, and honest status wording ("accepted", not "done"). Name where confirmation
   will actually appear (a Rewst notification, a status page).
```


## Related topics

- [Webhooks & APIs: How Thread Talks to Your PSA](/get-started/webhooks-apis-how-thread-talks-to-your-psa.md)
- [Security Vendor Generic](/skill-library/vendor-runbooks/security-vendor-generic.md)
- [Zapier Action Discovery](/skill-library/connectors/zapier-action-discovery.md)
