Source: ai-research/ghl-2026-05-01/docs-category-webhook.md, ai-research/ghl-2026-05-01/support-solutions-articles-155000007078-developer-guide-to-highlevel-s-webhook-logs-dashboard.md
HighLevel publishes 50+ real-time webhook events covering contacts, conversations, appointments, opportunities, invoices, products, tasks, users, and Marketplace app lifecycle. Webhooks are subscribed via Marketplace app configuration and delivered to the URL the app registers. The Webhook Logs Dashboard at Developer Portal → Insights → Logs gives every developer instant visibility into payloads, response codes, and retry history with 30-day retention.
Key Takeaways
- 50+ events are published in real time. Categories cover contacts, conversations, appointments, opportunities, invoices, products, prices, orders, tasks, users, locations, notes, campaigns, associations, records/relations, app lifecycle, and Voice AI calls.
- Subscription via Marketplace app config. Webhooks are configured on the Marketplace app, not per-tenant. Each install of the app inherits the event subscriptions defined on the listing.
- Webhook Logs Dashboard at Developer Portal → Insights → Logs records every outbound webhook with full payload, headers, response code, and retry history. 30-day retention.
- Substring search across payloads. The dashboard’s global search supports partial matches, so any value (email, contact ID, event name) can be located instantly.
- Filter by ID, event type, time range, status code. Detail panel shows webhook ID, attempt number, event name, timestamp history (created/delivered/retried), HTTP response code, and full JSON payload with one-click copy.
- Timezone-aware. Default Central Time, but every developer can pick their own — the selection is saved per user and does not affect teammates.
- Failures and retries are visible. Each attempt (including failures and retries) appears with its response code and timestamp. Logs are read-only — viewing them does not consume API rate limits.
- No direct export. Payloads can be copied individually, or webhook data can be retrieved via API. After 30 days logs are permanently deleted, so save anything needed for compliance.
Event Catalog (from official docs)
The Webhook docs landing page lists these event types:
App lifecycle: AppInstall, AppUninstall, AppUpdate, PlanChange.
External auth: ExternalAuthConnected (called when external authentication — OAuth2 or Basic — is connected for an app/location/company).
Contacts: ContactCreate, ContactUpdate, ContactDelete, ContactDndUpdate, ContactTagUpdate.
Conversations & messaging: InboundMessage, OutboundMessage, ProviderOutboundMessage (when a custom provider is the default channel), ConversationUnreadWebhook, LCEmailStats.
Appointments: AppointmentCreate, AppointmentUpdate, AppointmentDelete.
Opportunities: OpportunityCreate, OpportunityUpdate, OpportunityDelete, OpportunityStatusUpdate, OpportunityStageUpdate, OpportunityAssignedToUpdate, OpportunityMonetaryValueUpdate.
Invoices: InvoiceCreate, InvoiceUpdate, InvoiceDelete, InvoicePaid, InvoicePartiallyPaid, InvoiceSent, InvoiceVoid.
Orders: OrderCreate, OrderStatusUpdate.
Products & pricing: ProductCreate, ProductUpdate, ProductDelete, PriceCreate, PriceUpdate, PriceDelete.
Tasks: TaskCreate, TaskComplete, TaskDelete.
Users: UserCreate, UserUpdate, UserDelete.
Locations: LocationCreate, LocationUpdate.
Notes: NoteCreate, NoteUpdate, NoteDelete.
Campaigns: CampaignStatusUpdate.
Associations & objects: AssociationCreate, AssociationUpdate, AssociationDelete, ObjectSchemaCreate, ObjectSchemaUpdate, RecordCreate, RecordUpdate, RecordDelete, RelationCreate, RelationDelete.
SaaS & Voice: SaaSPlanCreate, VoiceAiCallEnd.
The official source is the Webhook docs landing page, which is the authoritative list — confirm the current set there before depending on a specific event name.
Using the Webhook Logs Dashboard
Setup:
- Sign in at
marketplace.gohighlevel.comand navigate to Developer Portal → Insights → Logs. - Select the Webhook Logs tab.
- (Optional) Adjust the timezone in the top-right corner.
- Trigger an event in your app to generate a test webhook.
- Enter a unique identifier (such as an email) into the search bar to locate the event.
- Click the row to open the detail panel — review payload and response.
- Use the Copy button to grab the payload for replay in Postman or webhook.site.
Key benefits called out in the official guide:
- Instant delivery verification — confirm immediately whether HighLevel delivered or retried a webhook.
- Full payload visibility — JSON payloads and headers, exactly as delivered (no masking, no truncation).
- 30-day log retention.
- Reduced dependency on Support — debug delivery issues without filing a ticket.
- Sub-account-aware — the dashboard displays webhook events associated with the developer account and its applications.
Access control: Only users with Developer Portal permissions can view the Webhook Logs Dashboard.
Open Questions
- Signing/verification. The sources reviewed for this article do not document a specific webhook signing or HMAC verification scheme. Treat this as an open item to confirm against the live Webhook Integration Guide before deploying.
- Automated retry behavior. The Webhook Logs Dashboard shows attempt numbers and retry history (so retries definitely happen), but the exact retry count, back-off schedule, and max age are not specified in the sources reviewed for this article — confirm against the Automated Webhook Retries support article before relying on specific timing.
Related
- OAuth 2.0
- API Endpoints Overview
- API Rate Limits
- Conversations API: Add Inbound Message
- App Uninstall API
- Developer Marketplace
- API Troubleshooting
Try It
- In your Marketplace app config, subscribe to the minimal set of events your integration needs (e.g.,
ContactCreate,ContactUpdate,InboundMessage). - Stand up a webhook receiver — even a
webhook.siteURL is fine for the first test. - Trigger the event in a test sub-account and verify it appears in Developer Portal → Insights → Logs within seconds.
- Inspect the payload structure for each event type before writing handler code — payloads are unmasked, so design idempotency around the IDs you see.
- Build idempotency keys from the event ID + entity ID. HighLevel retries on failure, and your handler must tolerate duplicate deliveries.
- Set up an alert that fires when a webhook handler returns a non-2xx response — the dashboard will show those, but you do not want to discover them by reading logs.