Case study 03
Direct integration vs. an intermediary
At an AI document automation platform for institutional financial services.
Enterprise clients needed document driven workflows, onboarding, KYC, capital call execution, to run inside the CRM they already lived in.
A direct integration with Salesforce. Managed package, security review, flows sequenced through an orchestration layer. Documents upload to the CRM, forward to the extraction platform, and a completed review fires a webhook that routes to the matching flow by document type. Flows create or update records, with business logic embedded directly in the integration. An account value above a threshold routes to a specialized team rather than standard onboarding.
Redrawn from the original with generic labels. Salesforce stays named, it's a public partnership. Structure unchanged.
Three choices did the real work. Typed data contracts, so the integration exposes explicit date, numeric, and boolean fields instead of one ambiguous cleaned value, and the consumer references the right type instead of inferring it. UUID scoped payloads, so document and datapoint identifiers get sent rather than the full record. Confirmation checkpoints at each stage, so a failure is visible where it happened instead of propagating silently downstream.
The general framework
Warehouse delivery
An intermediary, Airbyte, was correct. The job was reliable delivery to a destination. There was no strategic value in being visible inside that ecosystem, and a maintained connector meant not owning schema evolution and retry logic indefinitely.
CRM integration
Direct was correct. The integration needed to be interactive, flows, orchestration, webhook triggered actions, not just a pipe. Being a first class partner bought distribution an intermediary could never provide.
The test isn't whether direct is better. It's whether this integration needs to be visible and interactive inside the partner's world, or whether it's delivery.
Selected by Salesforce to present at TrailblazerDX 2022 as an early production use case for their newly launched Orchestrator product. Featured in Salesforce marketing and listed on Salesforce AppExchange.
The threshold based routing logic lived inside the integration itself. That was fast to ship, but it means a pricing or risk policy change requires a flow deployment rather than a configuration change. I'd push that rule out to a policy layer the integration reads from, so business teams can adjust it without touching the integration code.