Process a logging payload synchronously
POST /plugin/sync
Reference path for manifest endpointUrl when isAsync is false or omitted. App Connect invokes installed synchronous plugins sequentially before the connector creates or updates the CRM activity. The request envelope contains data, optional config, and, for call flows, hashedExtensionId. The response must be the bare logging payload, not the request envelope; it becomes input to the next plugin and then the connector. Preserve every downstream-required field. A network error, non-2xx response, or unusable response fails primary logging. App Connect persists X-Refreshed-JWT-Token from a successful synchronous response.
Operation ID: invokeSynchronousPlugin
Authorization: BEARER
Request body
Synchronous invocation envelope. data is the current connector logging payload, config is the user's saved plugin configuration or null, and call flows can include hashedExtensionId. The response is data itself, not this envelope.
Required: Yes
Content type: application/json
Schema: PluginInvocationRequest
{
"data": {
"logInfo": {
"sessionId": "session-123",
"direction": "Outbound",
"startTime": "2026-07-14T09:30:00.000Z",
"duration": 120,
"result": "Completed",
"from": {
"phoneNumber": "+14155550100"
},
"to": {
"phoneNumber": "+14155550101"
}
},
"contactId": "contact-123",
"contactType": "Contact",
"contactName": "Ada Lovelace",
"note": "Follow up tomorrow.",
"additionalSubmission": {}
},
"config": {
"ignoreLetters": {
"value": "ac"
}
},
"hashedExtensionId": "6b5d3fcae1f7"
}
Responses
| Status | Description | Body |
|---|---|---|
200 |
The transformed logging payload itself. App Connect passes it to the next synchronous plugin or connector; do not wrap it in a data envelope. | LoggingPayload |
401 |
The plugin bearer credential is missing or invalid. | TextError |
403 |
The credential is valid but is not authorized for the requested account or plugin. The template's plugin-id comparison works only after the route or trusted configuration supplies a plugin identifier; its documented paths do not contain :pluginId. | TextError |
500 |
The plugin failed to process the logging payload. | TextError |