# Webhooks
Webhooks let PAI send data to external systems automatically when specific events occur — an estimate is approved, a vendor submits an invoice, a payment is recorded. Any system that can receive an HTTP POST request can be a webhook destination.
The recommended approach for most teams is to connect PAI webhooks to **Zapier**, which acts as a bridge between PAI and virtually any other tool in your stack — no custom development required. Teams use this to ping Slack channels, trigger emails, activate workflows in project management tools, update spreadsheets, and more.
Access webhooks via **Settings → Webhooks**.
---
## Available Triggers
### Project Events
- **Project Approved** — fires when an estimate reaches "Approved" status
- **Estimate Stage Updated** — fires when an estimate's status changes (Draft, Internal Review, Sent, etc.)
### Invoice Events
- **Invoice Submitted** — fires when a vendor submits an invoice through the Vendor Portal
- **Invoice Approved** — fires when an invoice is approved in Accounts Payable
- **Invoice Changes Requested** — fires when an invoice is rejected and changes are requested
- **Invoice Payment Date Set** — fires when a payment date is scheduled
- **Invoice Paid** — fires when an invoice is marked as paid
### Vendor Events
- **Vendor Activated** — fires when a vendor's portal status is set to Active
---
## Setting Up a Webhook
1. Go to **Settings → Webhooks**
2. Click to add a new webhook
3. Select the trigger event from the dropdown
4. Paste your destination URL
5. Click **Add** to save
To test, trigger the corresponding event in PAI and verify your endpoint receives the payload.
---
## Common Use Cases with Zapier
These are real workflows customers have built using PAI webhooks and Zapier:
**Slack notifications** — trigger on Invoice Submitted to ping an AP or finance Slack channel the moment a vendor submits. Keeps your team aware of incoming invoices without checking PAI manually. Same pattern works for Invoice Approved, Invoice Paid, or any other status you want visibility on.
**Automated emails** — trigger on Invoice Payment Date Set to send a customized payment confirmation email to the vendor or an internal stakeholder outside of PAI's built-in notifications.
**Vendor onboarding** — trigger on Vendor Activated to kick off a downstream onboarding process: send a welcome email via your CRM, create a vendor record in your accounting software, or add them to a distribution list.
**Project kickoff** — trigger on Project Approved to create a project in your project management tool, notify the production team in Slack, or start a templated workflow in any system that Zapier connects to.
**Accounting sync** — trigger on Invoice Approved or Invoice Paid to create or update records in your accounting software, eliminating manual double-entry between PAI and your books.
**Financial tracking** — trigger on Invoice Paid to update a live Google Sheet, Airtable base, or dashboard that aggregates payment data outside PAI.
---
## Troubleshooting
**Webhook not firing** — verify the correct trigger is selected and that the event actually occurred in PAI (check the project or invoice status). Confirm your endpoint URL is accessible and returns a 200 status.
**Missing data** — review the webhook payload structure and check whether your receiving system needs additional data mapping.
**Connection issues** — test the endpoint URL independently using a tool like Postman. Check for SSL/TLS certificate issues or firewall rules that might block incoming requests.
For additional help, contact
[email protected].