An Irish pharmaceutical distributor was paying for CRM licences its field reps barely used, while wholesale orders reached the national mainframe by hand. We migrated the CRM with no downtime, then automated the SFTP and EDI 850 path into the wholesaler's ERP.
- Client
- National pharmaceutical distributor
- Sector
- Wholesale distribution · ERP integration
- Region
- Ireland and Western Europe
- Engagement
- Dedicated pod · 4 engineers
- Status
- In production · Wholesaler UAT signed off
The engagement began as a licensing problem and became a replacement. What matters is not that the CRM changed — it is what crossed the gap intact while it did.
Salesforce Enterprise
- Over $85K/yr in licences
- Licences going unused
- Slow on mobile in-store
Manual spreadsheet exports
- 4-hour ingestion delay
- Unmonitored batch drops
Point-to-point cron scripts
- No retry queue or checksums
- Silent drops during ERP maintenance
GoHighLevel
- Mobile-first field-rep CRM
- Normalised entity model
n8n, self-hosted
- Webhook ingestion queue
- Retry queue and payload checksums
SFTP + EDI 850 bridge
- Automated acknowledgement
- Slack alerting on exception
Four operational bottlenecks from the initial audit. Each finding required an engineered architectural answer.
Overweight Enterprise CRM Licensing
The distributor was paying $85,000/year for enterprise licenses while field reps only used a fraction of the features on slow mobile connections.
Manual SFTP Ingestion Latency
Wholesale orders were gathered via manual CSV spreadsheets, leaving a multi-hour lag before batches reached the fulfillment server.
Fragile Point-to-Point Cron Scripts
Legacy scripts lacked automated retries or integrity checksums, causing orders to silently fail during routine mainframe downtime.
Field Rep Inventory Blindness
Sales reps visiting regional pharmacies took orders without live visibility into national warehouse stock levels.
An order leaves a rep's handset in someone else's pharmacy and ends at a mainframe we integrate with but do not control. The status comes back the same way.
Batches are checksum-validated on both sides, retried on failure, and never dropped quietly.
- SFTP / EDI
- AWS
- Batch compiled
- Checksum validated
- Delivered over SFTP
How regional pharmacy orders compile, checksum, and settle in SAP S/4HANA before morning warehouse dispatch cutoffs.

The wholesaler's ERP requires strict segment-delimited EDI. Select any medicine to see how the engine automatically translates and labels mobile fields into mainframe tags in 12ms.
Amoxicillin 500mg
Prescription AntibioticThe old scripts did not fail less often than the new pipeline does. They failed without telling anyone, which is a different problem and a worse one.
- Point-to-point script starts on a timerBatch window opensPipeline starts, run recorded from the first step
- Connection drops part-way through the fileTransferThe same connection drops part-way through
- No checksum. A partial file looks like a whole oneValidationChecksum does not match the manifest. Rejected
- Nothing retries, because nothing noticedRecoveryBacks off and re-fetches until the checksum matches
- Nobody. The script exits reporting successWho finds outSlack alert raised whether or not the retry saved it
- Missing orders surface as stockouts and phone callsNext morningComplete batch is already settled with the wholesaler
The same drop happens in both lanes. The pipeline is not luckier — it is the only one that can tell you.
A side-by-side audit of operational upgrades across mobile, batching, and OpEx.
Complete migration from overweight Salesforce to GoHighLevel with zero downtime, paired with automated national wholesale ERP integration sign-off.
- Salesforce licences retired
- Accounts and pipelines carried across
- Custom fields preserved
- SFTP batch ingestion
- Checksum validation and retry
- Slack alerting on exception
- Order status back to field reps
- Further integration surface
- National rollout preparation
The steps are even — the record says the scope was expanded twice and does not say by how much, so no proportion is implied.
Annual CRM Licensing OpEx
$70,600/year returned directly to operational margin with zero lost rep functionality.
Order Ingestion & Mainframe Turnaround
Batches settle automatically before warehouse cutoff times, securing next-day delivery.
Order Transmission Loss Rate
Zero orders dropped during mainframe maintenance; weekend reconciliation eliminated.
- UAT Done
- National wholesale ERP sign-off
- Full end-to-end UAT completed with zero data discrepancies.
- 2x
- SOW scope expansion
- Client expanded integration scope twice post initial delivery.
- Sep 2026
- National go-live target
- Enterprise ERP production rollout across retail pharmacy chains.
- 0
- Dropped batch orders
- Self-healing SFTP retry queues eliminate silent ingestion failures.
This distributor is described by sector and geography rather than by name, so publishing never waits on a client's sign-off. The figures are unchanged either way — our delivery record is independently verifiable on Upwork.
Legacy replatforming, ERP and EDI integration, batch pipelines that have to reconcile. We take the migrations other teams quote around.
- ERP integration
- EDI X12 & EDIFACT
- SFTP batch pipelines
- CRM migration
- n8n orchestration
- Legacy replatforming

