● Project

CRM Automation

Apex + Flow orchestration for an enterprise client

Type
ENTERPRISE INTEGRATION
Status
Live
Year
2025
Built with
Apex · Flows · Platform Events · Queueable · REST/SOAP · Odoo

01

Overview

Cutting manual CRM workflow time by 30% with declarative Flows for the 80% and bulkified Apex for the complex 20%, syncing to an ERP through Platform Events.

  • › Record-triggered Flows own assignment, approvals and notifications so admins tune rules without deployments.
  • › One-trigger-per-object Apex delegating to testable handler classes.
  • › Platform Events decouple ERP callouts from the user transaction.

02

Problem

Sales ops manually triaged inbound records, re-keyed data into an external ERP, and chased approvals over email. Throughput capped at what humans could click through in a day, and error rates grew with volume.

03

Requirements

Automate routing and approvals without breaking existing processes, keep admins able to adjust rules without deployments, and sync to the ERP in near-real-time while respecting Salesforce governor limits.

04

How it's built

  1. PRESENTATION

    Lightning Web Components

    Reusable LWC with @wire adapters for reads and imperative Apex for writes; Lightning Message Service for cross-component events.

  2. SERVICE

    Apex (bulkified)

    One-trigger-per-object pattern delegating to handler classes; every path bulk-safe and covered by unit tests (85%+).

  3. ASYNC

    Platform Events + Queueable

    Long-running callouts moved off-transaction to respect governor limits.

  4. INTEGRATION

    REST / SOAP callouts

    Named Credentials for auth, retry with exponential backoff, idempotency keys on outbound sync.

  5. EXTERNAL

    Odoo ERP + third-party APIs

    Custom Odoo modules (Python/XML) receive normalized payloads; failures land in a replayable error queue.

05

Solution

Record-triggered Flows handle the declarative 80%. The complex 20% lives in bulkified Apex with Platform Events decoupling ERP callouts from the user transaction.

06

Challenges

Flow vs Apex per use case. Flows win on maintainability but lose on bulk performance and testability. The line was drawn at loops and callouts: anything iterating large record sets or touching external systems became Apex. Governor limits forced async orchestration via Queueable chains with retry and idempotency keys.

07

Results

−30%
MANUAL WORKFLOW
85%+
APEX COVERAGE
idempotent
ERP SYNC

Manual workflow time dropped by up to 30%, sync errors became replayable instead of silent, and the org passed 85%+ test coverage.

CONTACT