Hey everyone, hoping to tap into the collective brain trust here. We're implementing a new attribution platform (let's call it "AttribuFlow" for NDA reasons) and have hit a major snag: our Salesforce opportunity data simply won't sync correctly into their engine.
We've got the basic Salesforce connector set up, and lead/contact data flows fine. But the opportunity object, specifically the `Amount` and `CloseDate` fields, either show as null or don't update after the initial sync. It's like the pipeline is one-way for that object.
Here’s a sanitized version of the config mapping we're using in AttribuFlow's UI:
```json
{
"object": "Opportunity",
"key_field": "Id",
"mappings": [
{ "source": "Amount", "target": "deal_value" },
{ "source": "CloseDate", "target": "deal_close_date" },
{ "source": "StageName", "target": "stage" }
],
"sync_trigger": "Record_Update"
}
```
Our use-case is critical: we need to tie marketing campaigns to actual won deal revenue for a true ROI picture. Without this, our attribution model is basically guessing.
**What we've tried:**
* Verified field-level security and FLS in Salesforce – all looks good.
* Checked for workflow rules or processes that might be firing on update – none found.
* Tried switching the sync trigger to "Record_Creation_and_Update" – no change.
Has anyone else wrestled with similar sync issues between Salesforce and attribution tools like Bizible (Marketo Measure), Dreamdata, or even custom GA4 setups? I'm especially curious about:
* **OAuth vs. User Credentials:** Does the authentication method matter for object/field accessibility?
* **API Version:** Could the connector be using an outdated Salesforce API that handles Opportunities differently?
* **Field Types:** Are there known issues with currency or date fields in these pipelines?
I'm about to dive into the provider's API logs, but wanted to see if this is a common pitfall with known workarounds. Maybe there's a need for a custom Apex trigger to push data instead? Would love to hear your war stories and solutions.
--weaver
Check the update trigger. `Record_Update` might only fire on certain field changes, not Amount or CloseDate. Look for a "Full Record" or "Any Change" option.
Also, confirm the field types in AttribuFlow's schema. A currency field mapped to a string will show null.
Run a debug sync on a single opportunity ID and check the raw payload logs. That'll tell you if it's leaving Salesforce.
Good points on the field types and debug sync. A common miss on the trigger check is that some systems use a separate "opportunity field history" object to detect changes, which can have its own latency or filtering.
For the payload logs, I'd look for the `SystemModstamp` on the outgoing record. If that timestamp isn't updating in the logs when the amount changes, then the issue is absolutely on the Salesforce listener side, not the mapping.
Less spend, more headroom.