Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.thig.ai/llms.txt

Use this file to discover all available pages before exploring further.

Webhooks

Connect thig.ai to your existing tools and workflows with webhooks. Send notifications when events occur or receive data from external services.
Webhooks administration page

Outgoing Webhooks

Send HTTP POST notifications to external services whenever specific events occur in your organization.

Creating an Outgoing Webhook

  1. Go to Webhooks (/admin/webhooks) and select the Outgoing tab
  2. Click Add Webhook
  3. Enter a name and the destination URL
  4. Select which events to listen for
  5. Save the webhook

Supported Events (40+ types)

Project Events
EventTrigger
project.createdA new project is created
project.updatedA project’s details change
project.deletedA project is deleted
project.status_changedA project’s status changes (e.g., Draft → In Review)
project.assignedA project is assigned to a team member
project.archivedA project is archived
project.completedA project is marked complete
PRD Events
EventTrigger
prd.generatedA PRD document is generated
prd.exportedA PRD is exported to any format
prd.version_createdA new PRD version/snapshot is saved
prd.approvedA PRD is approved via stakeholder review
prd.rejectedA PRD is rejected via stakeholder review
Comment Events
EventTrigger
comment.createdA comment is added to a PRD
comment.resolvedA comment thread is resolved
comment.repliedA reply is added to a comment thread
Team Events
EventTrigger
team.member_addedA new member joins the organization
team.member_removedA member is removed
team.member_role_changedA member’s role is updated
team.invitation_sentAn invitation email is sent
team.invitation_acceptedAn invitation is accepted
AI Events
EventTrigger
ai.conversation_startedAn AI chat conversation begins
ai.conversation_completedAn AI conversation finishes
ai.suggestion_acceptedA user accepts an AI suggestion
Billing Events
EventTrigger
billing.subscription_createdA new subscription is created
billing.subscription_updatedA subscription plan changes
billing.subscription_cancelledA subscription is cancelled
billing.payment_failedA payment attempt fails
Subscribe only to the events you need. Subscribing to fewer events reduces noise and improves webhook reliability.

Webhook Payload

Each delivery includes a JSON body with the event type, timestamp, and relevant resource data. Headers include a signature for verification (see Security below).

Delivery Stats and Retries

The webhooks table shows delivery statistics for each endpoint:
  • Success rate — Percentage of successful deliveries (2xx responses)
  • Last delivery — Timestamp and status of the most recent attempt
  • Total deliveries — Count of all delivery attempts
Failed deliveries are retried automatically with exponential backoff (up to 3 retries over 1 hour).

Incoming Webhooks

Receive data from external services by generating unique webhook URLs.

Creating an Incoming Webhook

  1. Select the Incoming tab
  2. Click Add Webhook
  3. Name the webhook and configure the action (e.g., create a project, add a note)
  4. Copy the generated URL and configure it in your external service
Each incoming webhook gets a unique URL in the format:
https://app.thig.ai/api/webhooks/incoming/{webhook-id}

Webhook Security

All outgoing webhook deliveries are signed with HMAC-SHA256 for verification.

Verifying Signatures

Each delivery includes these headers:
HeaderDescription
webhook-idUnique identifier for the delivery
webhook-signatureHMAC-SHA256 signature of the payload
webhook-timestampUnix timestamp of the delivery
To verify a delivery, compute the HMAC-SHA256 of the timestamp and payload body using your webhook secret, then compare it to the signature header.
Always verify webhook signatures before processing payloads. Ignoring verification exposes your endpoint to spoofed requests.

Best Practices

  • Handle retries idempotently — Use the webhook-id header to deduplicate deliveries. The same event may be delivered more than once.
  • Respond quickly — Return a 2xx status within 10 seconds. Do heavy processing asynchronously after acknowledging receipt.
  • Monitor failures — Check the delivery stats regularly. Webhooks with repeated failures are automatically disabled after consecutive failures.
  • Use HTTPS — Only HTTPS endpoints are accepted for outgoing webhooks.
Test your webhook endpoint with the Send Test button before subscribing to real events. It sends a sample payload so you can verify your integration works.
Webhooks are available to Admin and Owner roles. Members and Viewers cannot configure webhooks.