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 Source | Endpoint Path |
|---|---|
| Demandbase | /api/demandbase_accounts |
| HubSpot | /api/hubspot_webhooks |
| Marketo Event Stream | /api/marketo_webhooks |
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.
| Field | API Name | Purpose |
|---|---|---|
| Domain | domain___e | Matches incoming account data to a unified account profile in LDP. |
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
| Field | Type | Description |
|---|---|---|
email | String | Email address of the contact or lead. LDP uses this to match the event to an existing unified individual profile. |
eventId | String | Name of the event. Use a consistent, descriptive identifier (for example, emailView, formSubmit, webinarAttend). |
HubSpot Optional Fields
| Field | Type | Description |
|---|---|---|
applicationId | String | Identifies the event source. Use "HubSpot". |
eventDate | String | Date and time the event occurred. Use the format shown in the example payload (EEE MMM dd HH:mm:ss zzz yyyy). |
properties | Object | Additional 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
eventIdvalues 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
propertiesfields 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
| Field | Type | Description |
|---|---|---|
email | String | Email address of the contact or lead. LDP uses this to match the event to an existing unified individual profile. |
eventId | String | Name of the event. Use a consistent, descriptive identifier (for example, emailOpen, formFillOut, webinarAttend). |
Marketo Optional Fields
| Field | Type | Description |
|---|---|---|
applicationId | String | Identifies the event source. Use "Marketo". |
eventDate | String | Date and time the event occurred. Use the format shown in the example payload (EEE MMM dd HH:mm:ss zzz yyyy). |
properties | Object | Additional 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
eventIdvalues across all your webhooks, because LDP groups events by this name. - Pass only the
propertiesfields you actively use in LDP. Unused fields still count against payload size.