Start asynchronous plugin processing
POST /plugin/async
Reference path for manifest endpointUrl when isAsync is true. For call create and update, App Connect saves the CRM activity first, creates a one-week callback task, synchronizes the plugin token, and POSTs data, config, asyncTaskId, callbackUrl, and hashedExtensionId. Any 2xx means dispatch completed; App Connect ignores the body and refresh headers. The plugin later reports completion to callbackUrl, and failure does not roll back the activity. For SMS and fax, App Connect synchronizes the token and starts an unawaited fire-and-forget POST before connector logging continues. That variant sends only data and config, with the original message payload nested at data.logInfo.logInfo. The unmodified JavaScript template rejects this variant because it requires callback fields; adapt it when declaring asynchronous SMS or fax support.
Operation ID: invokeAsynchronousPlugin
Authorization: BEARER
Request body
Either a callback-enabled call invocation or the current fire-and-forget SMS or fax invocation. Call requests include task and callback fields. SMS and fax omit them and wrap the original message payload under data.logInfo, producing message details at data.logInfo.logInfo.
Required: Yes
Content type: application/json
Schema: one of: AsyncCallbackInvocationRequest, AsyncFireAndForgetInvocationRequest
{
"data": {
"logInfo": {
"sessionId": "session-123",
"direction": "Outbound",
"startTime": "2026-07-14T09:30:00.000Z",
"duration": 120,
"result": "Completed"
},
"note": "Follow up tomorrow.",
"additionalSubmission": {}
},
"config": null,
"asyncTaskId": "4d3e22d7-2764-42d5-9d1c-dae7b45e40b3",
"callbackUrl": "https://app-connect.example.com/plugin/async-callback/4d3e22d7-2764-42d5-9d1c-dae7b45e40b3",
"hashedExtensionId": "6b5d3fcae1f7"
}
Responses
| Status | Description | Body |
|---|---|---|
200 |
Template acknowledgment for a callback-enabled task. For call dispatch, App Connect treats any 2xx as dispatched without inspecting accepted, asyncTaskId, or message; SMS and fax do not await or inspect the response. | AsyncAcceptanceResponse |
202 |
The provider accepted asynchronous processing. App Connect treats this the same as any other successful 2xx dispatch and ignores the body. | — |
204 |
The provider accepted asynchronous processing without a response body. App Connect treats this as a successful dispatch. | — |
400 |
The unmodified template returns this whenever asyncTaskId or callbackUrl is absent, including for the documented fire-and-forget SMS or fax request unless the handler is adapted. | AsyncRejectedResponse |
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 server could not accept the task. | TextError |