Data Sources

Webhook Payload Reference

Private Beta Feature Liferay Data Platform 2026.Q2+

This reference describes the webhook payload fields Liferay Data Platform (LDP) accepts from Demandbase, HubSpot, and Marketo. Each source has required fields for identity matching and optional fields for enriching unified profiles.

Endpoints and Delivery

Each webhook data source generates its own endpoint URL when you add it in LDP. Copy the value LDP shows rather than building the URL yourself. Endpoints accept POST requests with a Content-Type of application/json, authenticated with the token LDP generates alongside the URL.

Data SourceEndpoint Path
Demandbase/api/demandbase_accounts
HubSpot/api/hubspot_webhooks
Marketo Event Stream/api/marketo_webhooks
Important

LDP returns 200 OK for every request it accepts, before the payload is validated. A successful response confirms delivery, not ingestion. To confirm that events are landing, check the Activities tab for an individual or account.

Demandbase Account Fields

Demandbase sends account and firmographic data to LDP via webhook, and LDP maps it to unified account profiles. Demandbase builds the payload from its own account schema, which you choose when you set up the integration. For the full set of account, firmographic, and calculated fields Demandbase can send, see the field documentation in your Demandbase account.

FieldAPI NamePurpose
Domaindomain___eMatches incoming account data to a unified account profile in LDP.
Important

Include domain___e in your payload. LDP uses the domain to match Demandbase account data to the correct unified account profile.

HubSpot Event Fields

LDP treats HubSpot events as custom events, so there is no predefined event schema. You define the JSON payload entirely on the HubSpot side (in the workflow webhook action). LDP ingests whatever you send, as long as the required fields are present.

HubSpot Required Fields

FieldTypeDescription
emailStringEmail address of the contact or lead. LDP uses this to match the event to an existing unified individual profile.
eventIdStringName of the event. Use a consistent, descriptive identifier (for example, emailView, formSubmit, webinarAttend).

HubSpot Optional Fields

FieldTypeDescription
applicationIdStringIdentifies the event source. Use "HubSpot".
eventDateStringDate and time the event occurred. Use the format shown in the example payload (EEE MMM dd HH:mm:ss zzz yyyy).
propertiesObjectAdditional key-value pairs to include with the event. Use this to pass context that is useful in LDP (for example, campaign name, asset title, form ID).

HubSpot Example Payload

{
  "email": "contact@example.com",
  "applicationId": "HubSpot",
  "eventDate": "Fri May 29 12:10:39 GMT 2026",
  "eventId": "emailView",
  "properties": {
    "emailName": "Marketing Opportunity"
  }
}

HubSpot Best Practices

  • Use a consistent naming convention for eventId values across all your webhooks, because LDP groups events by this name.
  • Add the webhook to a separate workflow for each event type you want to track.
  • Pass only the properties fields you actively use in LDP. Unused fields still count against payload size.

Marketo Event Fields

Marketo webhook events use the same payload contract as HubSpot events. LDP treats Marketo events as custom events, so there is no predefined event schema. You define the JSON payload entirely on the Marketo side, and LDP ingests whatever you send, as long as the required fields are present.

Marketo Required Fields

FieldTypeDescription
emailStringEmail address of the contact or lead. LDP uses this to match the event to an existing unified individual profile.
eventIdStringName of the event. Use a consistent, descriptive identifier (for example, emailOpen, formFillOut, webinarAttend).

Marketo Optional Fields

FieldTypeDescription
applicationIdStringIdentifies the event source. Use "Marketo".
eventDateStringDate and time the event occurred. Use the format shown in the example payload (EEE MMM dd HH:mm:ss zzz yyyy).
propertiesObjectAdditional key-value pairs to include with the event. Use this to pass context that is useful in LDP (for example, campaign name, asset title, form ID).

Marketo Example Payload

{
  "email": "contact@example.com",
  "applicationId": "Marketo",
  "eventDate": "Fri May 29 12:10:39 GMT 2026",
  "eventId": "emailOpen",
  "properties": {
    "campaignName": "Q3 Nurture"
  }
}

Marketo Best Practices

  • Use a consistent naming convention for eventId values across all your webhooks, because LDP groups events by this name.
  • Pass only the properties fields you actively use in LDP. Unused fields still count against payload size.