Total Expert · AsyncAPI Specification

Total Expert Webhooks

Version

View Spec View on GitHub CompanyFintechCRMMarketing AutomationMortgageBankingLendingCustomer EngagementAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: >-
  https://documenter.getpostman.com/view/1929166/total-expert-public-api/6Z2RYyU
  (Webhooks section of the Total Expert Public API documentation) +
  https://totalexpert.freshdesk.com/support/solutions/articles/22000296302-outbound-data-connector-advanced-guide
spec_type: Webhooks
notes: >-
  Total Expert publishes no AsyncAPI document. This captures its two documented
  outbound event surfaces: (1) Webhooks — organizations subscribe an HTTPS
  endpoint to a set of actions and receive POST notifications when those actions
  occur; and (2) the Outbound Data Connector (ODC), a templated JSON push to an
  external system or API on a trigger.
subscription:
  create: POST /v1/webhook-subscriptions (see openapi/total-expert-openapi.yml#createWebhookSubscription)
  list_actions: GET /v1/webhook-actions returns the full list of subscribable actions (openapi/total-expert-openapi.yml#fetchWebhookActions)
  manage:
  - openapi/total-expert-openapi.yml#fetchWebhookSubscriptions
  - openapi/total-expert-openapi.yml#fetchWebhookSubscription
  - openapi/total-expert-openapi.yml#updateWebhookSubscription
  - openapi/total-expert-openapi.yml#deleteWebhookSubscription
  requirements:
  - url: Notification target. Must be HTTPS protected by a valid certificate.
  - actions: List of actions to subscribe to. An action comprises an 'entity' and a 'verb' (e.g. item CONTACT, action CREATED); fetch the full list from /v1/webhook-actions.
  - secret: Included in every notification for authenticity. A randomly generated 32-64 char hex string is suggested (up to 255 chars supported); rotate via PATCH on the subscription.
  scope: Each organization can have several webhooks; each webhook can register multiple actions. remove_actions is a special POST/PATCH attribute for unsubscribing actions.
notification:
  transport: HTTP POST to the subscribed URL
  body:
    item: Name of the subscribed item, e.g. 'CONTACT'
    action: Name of the subscribed verb, e.g. 'CREATED'
    id: The database ID of the item
    hashValue: HEX string representing the contents of the affected record
    secret: The secret specified on the subscription
  hash_semantics: >-
    hashValue is unchanged when a notification fires without an actual data
    change (e.g. a no-op save in the UI), so repeated notifications with the
    same hash can safely be ignored. Compare only against the most recent
    notification received.
  delivery_limits: >-
    Notifications fire only for contact records associated with your
    organization; co-marketers of organizational contacts do not receive
    notifications.
outbound_data_connector:
  name: Outbound Data Connector (ODC)
  docs: https://totalexpert.freshdesk.com/support/solutions/articles/22000296302-outbound-data-connector-advanced-guide
  guide_pdf: https://totalexpert-trainingteam.s3.us-east-2.amazonaws.com/TE_OutboundDataConnector/Outbound+Data+Connector.pdf
  modified: '2026-08-11'
  description: >-
    ODC pushes a structured JSON payload to an external system or API whenever a
    trigger fires (a workflow step, a status change, or a scheduled event). The
    payload is authored as a template: each JSON value can be static, or a
    dynamic value resolved at send time from the triggering record using Liquid
    template tags. One connector configuration serves thousands of records.
  templating:
    language: Liquid
    constructs:
    - {syntax: '{{ variable }}', purpose: renders a field or expression into the output}
    - {syntax: '{% logic %}', purpose: executes logic (if/else, loops, assignments); produces no output itself}
    - {syntax: '{{ variable | filter }}', purpose: transforms the output value before rendering; filters chain left to right}
    note: >-
      The advanced guide publishes a full filter library (string case, number
      and math, date, default/fallback), conditional logic patterns, and a tag
      reference. Total Expert cautions that platform implementations may support
      only a subset of Liquid filters, so each filter should be tested in the
      target environment.
  data_objects:
  - {object: contact, description: Contact record that triggered the event, example: '{{contact.f_name}}'}
  - {object: owner, description: The user (loan officer) who owns the contact or loan, example: '{{owner.email}}'}
  - {object: loan, description: The loan record associated with the trigger, example: '{{loan.amount}}'}
  - {object: lead, description: The lead record associated with the trigger event, example: '{{lead.stage}}'}
  - {object: 'brand_*', description: Organization-level branding variables, example: '{{brand_company_name}}'}
  - {object: contact.enriched.rate, description: Enriched rate/market data on the contact, example: '{{contact.enriched.rate.loan_rate}}'}
  - {object: contact.enriched.equity, description: Enriched equity/property data on the contact, example: '{{contact.enriched.equity.estimated_ltv}}'}
  - {object: contact.enriched.debt, description: Enriched debt/credit profile data on the contact, example: '{{contact.enriched.debt.credit_score}}'}
  scoping_caveat: >-
    Not every object is available in every trigger context — a loan-triggered
    connector exposes loan.* fields, a contact-triggered connector may not.
    Consumers must verify which objects are in scope for the workflow trigger.
  recent_changes:
  - {date: '2026-06-08', change: 'Lead Entity Support — loan purpose, property information and lead ID can be included in ODC payloads to third-party systems such as AI sales agents and dialers.', source: 'https://totalexpert.freshdesk.com/support/solutions/articles/22000295615-2026-june-release-notes'}
inbound_callback_contracts:
- name: TE Connect PPE
  direction: Total Expert -> partner endpoint
  description: >-
    Total Expert POSTs a rate-quote request to a partner-configured pricing
    engine endpoint and consumes the response. The provider publishes the full
    field-level request/response schema as a downloadable YAML file.
  schema: vocabulary/total-expert-te-connect-ppe-schema.yml
  docs: https://totalexpert.freshdesk.com/support/solutions/articles/22000293934-te-connect-ppe-integration-guide
use_cases:
- Keep an external CRM in sync with contacts/leads created or updated directly in Total Expert.
- Propagate contact deletions/archivals to a mirrored database.
- Sync email opt-outs so downstream systems stop communicating with opted-out contacts.
- Push templated JSON to a downstream API (AI sales agent, dialer, data warehouse) on a workflow trigger via ODC.