Hi all,
We're running Communications Builder/Communications Server 16.6.2, and have a requirement to call an external REST API immediately after a document is successfully generated (per-document, not once per batch), to notify a downstream system of the new document's location.
The target API requires:
- HTTP method: PATCH
- Authentication: Bearer token (OAuth2 client credentials flow — token endpoint, client_id/client_secret, access_token with expiry)
- A custom JSON request body (not the rendered document itself)
We evaluated the native HTTP(S) Submit output connector, but based on its documented settings:
- Supported methods are POST and PUT — no PATCH.
- Supported authentication is Basic/Digest (RFC 2617) — no Bearer/OAuth2 option.
- The connector's model appears to be built around submitting the generated output itself as the request body, rather than an arbitrary custom payload.
A few specific questions, if anyone has direct experience:
- Does the HTTP(S) Submit connector's "Custom header" field support dynamic values (e.g. populated from a script variable at runtime), or is it a fixed, static value set at design time? If dynamic, is there a documented pattern for refreshing a Bearer token and injecting it per-request?
- Can the HTTP(S) Submit connector send an arbitrary JSON body unrelated to the rendered document output, or is the request body always tied to the generated output?
- Is there any native connector or profile type (e.g. web service profiles, OAuth profiles) that supports Bearer/OAuth2 authentication for a generic outbound HTTP call — not tied to a specific named partner product (we've found OAuth profiles scoped to SMTP, and web service profiles scoped to specific integrations like Output Manager/EasyLink)?
- Has anyone found a native way to conditionally skip an output connector firing based on a per-document business condition (e.g. only call the API if a validation check passed), without resorting to script-level logic?
We ended up building this via JavaInvokeStaticMethod calling a custom Java class, which works well, but wanted to check whether we've missed a native option before committing to that as the long-term approach.
Thanks in advance for any insight.