generated: '2026-08-13' method: searched source: https://docs.navattic.com/integrations/webhook spec_type: none description: > Navattic publishes no AsyncAPI document — probed for one and none is served — but it does publish a genuinely complete webhook reference: the envelope, both payload variants, every field with its type and nullability, the recorded-event type enumeration, the request headers it sends, and the Launchpad/Salesforce extension fields. This artifact captures that catalog as the event surface. Nothing here is inferred; every field below appears in the provider's own reference table. delivery: direction: outbound trigger: A visitor session in a demo is marked as closed transport: HTTPS POST content_type: application/json user_agent: navattic-tour authorization: > Sent only when configured on the webhook — "Basic " or "Bearer ". No HMAC signature header is documented. timestamps: ISO 8601 strings numeric_note: Large numeric values (e.g. estimatedAnnualRevenue) are sent as strings change_policy: > "Navattic strives to minimize the changes to the Webhook integration, and if necessary will provide ample notice for any breaking changes." — an informal commitment, not a dated deprecation policy. retries: not documented ordering: not documented envelope: fields: - {name: eventType, type: string, description: 'The type of event. Currently always session_closed.'} - {name: timestamp, type: string, description: When the session closed.} - {name: data, type: object, description: 'Visitor events carry {session, endUser, companyAccount}; account events carry the company account object only.'} events: - name: session_closed variant: visitor description: Full session, visitor and account details for a closed demo session. payload_root: 'data.{session,endUser,companyAccount}' example: published in the docs - name: session_closed variant: account description: Company account details only. payload_root: data (the companyAccount object) example: published in the docs objects: - name: session path: data.session fields_common: [type, createdAt, closedAt, mostRecentDemoName, recordedEvents] type_enum: [INTERACTIVE_DEMO, AGENT_DEMO] fields_interactive_demo: [recordedGuideSessionId, mostRecentProjectId, mostRecentShareLinkId, shareLink] fields_agent_demo: [agentDemoSessionId, agentDemoId] - name: endUser path: data.endUser fields: [id, createdAt, updatedAt, sharedId, workspaceId, companyAccountId, mostRecentEmail, mostRecentName, mostRecentCompany, mostRecentCountry, mostRecentCountryRegion, mostRecentCity, converted, navigated, engaged, customPropertyValues, recordedEvents] - name: companyAccount path: data.companyAccount nullable: true nullable_note: null on visitor events when no account could be matched fields: [id, createdAt, updatedAt, workspaceId, websiteDomain, name, engaged, description, linkedinUrl, sector, industryGroup, industry, subIndustry, employeeCount, estimatedAnnualRevenue, amountRaised, trafficRank, foundedYear, city, state, country, postalCode, technologies, clearbitConfidence, customPropertyValues] - name: recordedEvent path: data.session.recordedEvents[] mirrored_at: data.endUser.recordedEvents[] fields: [id, createdAt, updatedAt, type, recordedStepId, recordedStepIndex, recordedStepCommonId, recordedStepName, recordedFlowId, recordedFlowName, recordedProjectId, recordedProjectName, recordedChecklistId, recordedChecklistName, recordedTaskId, recordedTaskName, recordedInterestId, recordedInterestName, urlNavigated, workspaceId, projectId, projectShareLinkId, flowId, checklistId, projectVersionId, projectLanguage, guideId, sessionId, endUserId, mobileId, mobileVersionId] type_enum: - VIEW_STEP - START_FLOW - COMPLETE_FLOW - START_CHECKLIST - OPEN_CHECKLIST - CLOSE_CHECKLIST - IDENTIFY_USER - ENGAGE - CONVERTED - NAVIGATE - COMPLETE_TASK - SESSION_CLOSED - name: customPropertyValue path: '{endUser,companyAccount}.customPropertyValues[]' fields: [propertyId, value, createdAt, source, property] source_enum: [FORM, IDENTIFY, QUERY_PARAMS, REDUCER, SHARE_LINK, PRESENTATION, ENRICHMENT, INTEGRATION, OTHER] property_object_enum: [END_USER, COMPANY_ACCOUNT] extensions: - name: opportunityOwnerEmail condition: Launchpad presentation connected to a Salesforce opportunity description: Email address of the Salesforce user who owns the opportunity. - name: opportunityOwnerId condition: Launchpad presentation connected to a Salesforce opportunity description: Salesforce user ID of the opportunity owner. client_side_events: note: > A second, browser-side event stream exists via Navattic JS — navattic.onEvent(cb) delivers the same recorded-event types to the host page for forwarding to GA4, Segment, GTM, HubSpot Forms or Marketo Forms. docs: https://docs.navattic.com/tracking/navattic-js/subscribe-to-events testing: recommended_tool: https://webhook.site/ caution: > Navattic warns that webhook.site is public, so only test data should be sent through it to avoid exposing customer event data. asyncapi_probe: found: false note: > No AsyncAPI document is served. The Navattic GitHub organization (https://github.com/Navattic) has zero public repositories, and no /asyncapi.yaml or event-catalog endpoint answers on any Navattic host. x-evidence: - {url: 'https://docs.navattic.com/integrations/webhook.md', status: 200} - {url: 'https://api.github.com/orgs/Navattic/repos', status: 200, note: 'zero public repos'}