Connecting a customer relationship management system (CRM) to an advertising platform does not mean the platform should receive the whole contact record. Approve a narrow export that contains only the business event, identifiers, and values needed for a defined advertising purpose. Exclude free-text notes, attachments, sensitive categories, internal judgments, and any record that does not meet the approved eligibility rule.
Do this before choosing a connector or copying an API token. Hashing, encryption, and a secure connection protect parts of the transfer, but they do not decide whether a field belongs in the transfer.
Use the conversion-tracking change audit after the data boundary is approved and the team is ready to test a specific implementation. This guide answers the earlier question: what is allowed to leave the CRM at all?
Start with the destination decision
Write one sentence that names the purpose and the decision it will influence:
We will send [approved event] records to [platform and account] so the platform can [measurement, optimization, or audience purpose]. We will review the connection on [date] and use the result to decide [named action].
“Improve ads” is too broad. “Send completed first appointments to the Google Ads account so we can compare campaigns by attended appointments” is specific enough to test.
Keep measurement, optimization, and audience creation separate. A platform may use similar customer information for more than one product, but your approval should not silently expand from measuring completed appointments to building a remarketing audience. Google, for example, publishes separate customer-data policies and explains that some uploaded data can also be used to generate Customer Match lists when the advertiser chooses that option. Record the exact product settings, not only the platform name.
Create the outbound data map
Copy this table for every connection. One row represents one field leaving the CRM.
| CRM field | Business meaning | Why the destination needs it | Eligible records | Transformation | Destination field | Retention or deletion rule | Owner |
|---|---|---|---|---|---|---|---|
| Appointment status | Completed appointment, based on the operating definition | Conversion event | Status changed to completed during the approved period | Map to the approved event name | Event name | Follow the approved platform and internal retention rules | Operations |
| Status-change time | Time the appointment became complete | Event timing and reconciliation | Same as above | Convert to documented time zone and format | Event time | Same as event record | Analytics |
| Lead ID | Stable internal identifier with no free text | Reconcile one CRM record to one outbound event | Same as above | Replace with approved external identifier if required | External ID | Remove under the connection's deletion process | Data owner |
| Customer-provided match identifier | Improve matching where approved and required | Only records allowed by the written eligibility rule | Normalize and hash exactly as the platform requires | Hashed email | Do not retain in connector logs | Privacy owner | |
| Collected revenue | Amount actually collected for the event | Optional value reporting | Only if the event and value definition are approved | Convert to the documented currency and decimal format | Value and currency | Same as event record | Finance |
The example is not a universal field list. Delete every row that does not support the stated purpose. Add a source-system path so the implementer knows whether “appointment status” means appointment.status, a pipeline-stage label, or a calculated report field.
Platform instructions change. As of this review, Google directs new enhanced-conversions-for-leads work toward its Data Manager API and documents hashed user data for matching. Microsoft documents offline-conversion objects with conversion time, goal name, click identifiers, value, and currency fields. LinkedIn documents server-side conversion events and multiple identifier choices. TikTok tells implementers to define the events, parameters, and match keys that fit the marketing objective and review them with legal and technical teams. Meta's official Business SDKs expose server-side Conversions API events and normalize and hash supported customer-information parameters through their builders.
Those are product capabilities, not instructions to send every available field. Approve the smallest useful set for the selected product and account.
Maintain a do-not-send list
Write exclusions as enforceable rules, not a vague promise to “avoid sensitive data.” Start with:
- Free-text sales, support, medical, employment, or service notes
- Call transcripts, recordings, uploaded documents, and attachments
- Passwords, authentication secrets, access tokens, security questions, or payment-card data
- Government identifiers or financial-account details
- Fields revealing sensitive traits or circumstances unless qualified legal and platform review explicitly approves a necessary use
- Internal risk labels, salesperson opinions, dispute notes, fraud suspicions, or inferred characteristics
- Records from test accounts, employees, vendors, duplicates, deleted contacts, or another business unit
- Any field that the chosen advertising product prohibits
- Any record outside the approved geography, time window, event definition, account, or customer-notice rule
TikTok's current Events API documentation explicitly says not to share sensitive data. Google separately restricts personally identifiable information in ordinary remarketing tags and data feeds while documenting specific customer-data products that accept approved user-provided data. The product path matters. Do not treat a field as permitted just because another feature on the same platform accepts it.
Put the do-not-send rules next to the mapping. Require the export or connector to fail closed when an eligibility value is missing. Sending the record and investigating later defeats the purpose of a boundary.
Separate event truth from match data
An outbound conversion usually contains two different kinds of information:
- Event truth: what happened, when it happened, its value, and the stable source record.
- Match data: an approved click ID or customer identifier used to connect the event to an advertising interaction.
Do not let match quality redefine the business event. A lead does not become qualified because an email matched. A sale does not become collected revenue because the platform accepted the payload. Define the stage in the CRM first, using the lead-quality scorecard and the pipeline-versus-collected-revenue guide where relevant.
Hashing also needs a precise meaning. Google, TikTok, LinkedIn, and Meta document hashing for certain customer identifiers, but not for every field. Some click identifiers and event details follow different formats. Hash only the fields the current destination specification tells you to hash, after the required normalization. A hashed email is still customer-derived matching data. Hashing does not supply consent, notice, purpose, retention, or access decisions.
Write the record eligibility rule
Turn the purpose into a filter that another person can reproduce:
Include a record only when: - the event equals [approved business event]; - the event occurred inside [time window and time zone]; - the record belongs to [approved brand, region, and account]; - the record is not a test, employee, duplicate, deleted, or suppressed record; - required notice, consent, or other policy conditions are satisfied; - at least one approved match path is present; and - every required event field passes format validation.
The correct legal condition depends on the jurisdiction, relationship, purpose, and platform terms. Have qualified counsel or a privacy professional define it when necessary. The engineering job is to make the approved rule explicit, testable, and visible in logs without exposing the customer data itself.
Reconcile every boundary with numbers
Do not jump from “CRM records selected” to “conversions reported.” Keep a count at each stage:
| Stage | Meaning |
|---|---|
| Selected | Records returned by the first CRM query |
| Eligible | Records remaining after the approved rule and exclusions |
| Transformed | Eligible records successfully normalized and mapped |
| Accepted | Events the destination accepted without a payload error |
| Matched | Accepted events the platform could associate where it reports this state |
| Attributed | Events credited to advertising under the platform's attribution rules |
Use consistent denominators:
Eligibility rate = eligible records / selected records Acceptance rate = accepted events / attempted transformed events Reported match rate = matched events / accepted events
Suppose a CRM query selects 120 records. The documented rule excludes 15 tests or duplicates, 10 records outside the approved region and use, and 5 records missing a required event time. Ninety records are eligible, so the eligibility rate is 90 divided by 120, or 75%.
The connector attempts all 90 transformed events. The platform accepts 84 and rejects 6 for correctable format problems. The acceptance rate is 84 divided by 90, or about 93.3%. If the platform later reports 68 matches, the reported match rate is 68 divided by 84, or about 81.0%.
None of those ratios is a privacy score or proof of attribution. The 30 exclusions need reason codes. The 6 rejections need correction or a documented closeout. The 68 matches say nothing by themselves about whether the export was appropriate. If the CRM, connector, and platform disagree, use the report reconciliation worksheet before changing the boundary.
Test with synthetic or marked records first
Test both allowed and blocked paths before backfilling real history.
| Test case | Expected result | Evidence to retain |
|---|---|---|
| One valid approved event | Sent once and accepted | Source ID, event ID, time, transformed field names, response code |
| Duplicate delivery of the same event | Deduplicated or rejected according to the documented design | Stable event ID and destination result |
| Test or employee record | Blocked before transmission | Exclusion reason without personal details |
| Record outside approved region | Blocked before transmission | Rule version and exclusion reason |
| Missing required event time | Failed closed | Validation error and no destination request |
| Prohibited free-text field added to CRM | Never appears in payload or connector log | Payload schema diff and log inspection |
| Corrected value or canceled event | Adjustment follows the platform's supported method | Original ID, adjustment type, destination result |
| Deletion or suppression request | Removed or suppressed through the documented path where supported | Request time, systems checked, completion evidence |
| Credential without permission | Request fails without leaking data | Access-control result |
Use a non-production destination or platform test mode where available. Inspect the actual outbound request, connector logs, dead-letter or retry queues, cloud logs, and the destination result. A green connector status does not prove that excluded fields stayed out.
For production, retain the mapping version, code or workflow version, approval date, approver, query window, counts by stage, rejection reason totals, and destination response identifiers. Do not place raw emails or full payloads in general-purpose logs merely to make troubleshooting easier.
Control access, retention, and change
Name the people or roles allowed to:
- Change the CRM query or eligibility filter
- Add a mapped field
- View connector configuration and logs
- Rotate credentials
- Retry rejected records
- Change the destination account, conversion action, or audience
- Request deletion, suppression, or disconnection
- Approve a new advertising purpose
Set a review date and a stop procedure. Document how to revoke the credential, disable the workflow, empty retry queues, remove scheduled exports, verify that no new requests leave the system, handle previously shared data under the platform's controls and terms, and preserve only the evidence needed for the business record.
Treat every new field, destination product, account, audience use, jurisdiction, and business event as a change requiring review. A connector update that quietly exposes a newly created CRM property is a data-boundary change, even if no one edits the campaign.
Make one release decision
| Decision | Meaning |
|---|---|
| Approve | The purpose, product, account, fields, eligible records, exclusions, transformations, tests, access, retention, and stop procedure are documented and approved |
| Limit | A smaller event set, identifier set, geography, time window, or measurement-only use can answer the question |
| Revise | The purpose is valid, but a field, record rule, log, retry path, deletion path, or test failed |
| Decline | The use is too broad, prohibited, unsupported, unnecessary, or impossible to enforce reliably |
Approval belongs to a version. When the mapping changes, rerun the relevant boundary tests and the conversion-tracking release audit. Do not rely on the old approval because the connector name stayed the same.
A useful CRM connection is not the one that sends the most data. It is the one that sends a defined event through a narrow, documented, reproducible boundary and gives the business evidence to stop or change it safely. If you need help designing that measurement boundary and the reports that follow it, review Ocean Media's strategy and reporting service.
Your next step
Run your numbersSources checked
- Google Ads Help: Customer data policiesChecked 2026-10-08
- Google for Developers: Send offline events with the Data Manager APIChecked 2026-10-08
- Google Ads Help: About enhanced conversionsChecked 2026-10-08
- Meta Business SDK for Node.jsChecked 2026-10-08
- Microsoft Advertising API: OfflineConversion data objectChecked 2026-10-08
- LinkedIn Marketing API: Conversions overviewChecked 2026-10-08
- LinkedIn Marketing API: Conversions API schemaChecked 2026-10-08
- TikTok Ads Manager: Get started with Events APIChecked 2026-10-08
- TikTok Ads Manager: Standard events and parametersChecked 2026-10-08
About this resource
Created with AI assistance for Ocean Media Marketing. Examples are illustrative unless explicitly identified otherwise. Platform claims are checked against the listed sources. We do not claim that a quality score proves accuracy or guarantees results.
Original contribution: An original purpose statement, field-level outbound map, do-not-send list, event-versus-match-data distinction, reproducible eligibility rule, six-stage reconciliation ledger, independently checked 120-record example, nine-case boundary test, access and stop controls, and four release decisions.
Suggest a correction