One of my current projects is a Shopify to Salesforce integration. The client had purchased Zapier, and I was OK with it, so it was the chosen connector.
Products and orders needed to be synchronized with Salesforce, one way only.
With Zapier, the order lines were concatenated on a single line. Example
- Order Line Id: 1234,5678
- Order Line Product Id: 42423,645646
- Order Line Amount : $10,$20
These values were copied as-is into a staging object in Salesforce. Then a flow parsed the data into the appropriate objects.
To manage these order lines, I had to build an invocable apex class to perform the string manipulation across multiple fields so that the first order line had Id: 1234, product id: 42423, and amount: $10.
As with all of my projects, the business goal is important. The technical mechanics are irrelevant to the client.
So I wasn’t concerned when last week, the client asked me to change from Zapier to Make. I actually recommended Make, as it’s less expensive and is fully featured.
Make has a more powerful Shopify connector than Zapier. As a result, the order lines were natively stored as separate records. So the invocable apex I built was obsolete.
If you were charging by the hour, would you have charged the client for the time spent building the apex, even though it won’t actually be used?
The takeaway
When you charge for the outcome, not by the hour, technical changes are easy to manage. You understand the client is paying for the outcome, not the time spent or the specific tools used.