28
votes
Accepted
Trying to automate contact deletion with SSJS
Updated March 2020 to accomodate for v2 authorisation and tenant specific endpoints.
Please see the example of how I use this for bulk deletion. You should use the REST API, using the ...
7
votes
GDPR: What happens to deleted contacts re-entered through imports
You would need to remove their address/contactkey from your system as well to stay GDPR compliant. The Marketing Cloud will allow the contact key back into the system after it has been fully deleted. ...
5
votes
Data Privacy in Workbench
You can audit the source code of Workbench in its GitHub repository.
Workbench isn't an official product of Salesforce:
Workbench is NOT a supported product of or supported by salesforce.com, inc
...
5
votes
Consent Management in Marketing Cloud - Difference between hasOptedOutTracking and DoNotTrack
Consent Management across channels is left to be handled on your own.
You have to piece together your Optout process in order to meet your requirements (Preference centers, relational Data model,SQL ...
5
votes
Accepted
How to query contacts with no cases, opportunities etc
Rather than negating a suite of clauses and joining them with OR, negate each individually and join with AND. You will get the added benefit that your query is much more selective.
List<Contact>...
5
votes
Accepted
GDPR - Obfuscating User details
In the summer '18 release a new method has been added to the UserManagement class that specifically deals with anonymising user information: obfuscateUser
obfuscateUser(userId, username)
...
4
votes
Accepted
Personally identifiable information (PII) safeguard through GDPR
Salesforce has different security mechanisms that safeguard data privacy that includes using Shield , Platform Encryption (Security for Data at REST), Event monitoring to track which APIs are used , ...
4
votes
Accepted
AccountHistory not deleting immediately after an update
History records are not created until the end of the transaction. If you want to make sure those records are available for deletion, use a @future method, instead.
3
votes
Salesforce Inbox Application under GDPR Compliance
I'm no legal genius and don't take this as legally accurate, but under GDPR there is a provision for 'legitimate interest' and also that location information doesn't necessarily mean it's personal ...
3
votes
Accepted
How do you populate data on the new Individual Object?
1) Create a new flow. The logic of a flow: a new Individual record created/edited and associated with the Contact/Lead record that started the process. You will need one process/flow per object (Lead/...
3
votes
How to query contacts with no cases, opportunities etc
You mentioned that you are using a batch job. Thats quite useful. Assuming your Batch is based on your contact Object.
In the execute method, you will get a List<Contact> scope,
Now run 3 ...
3
votes
How to query contacts with no cases, opportunities etc
Probably group your ids in a set before running the query.
Set<Id> contactIds = new Set<Id>();
contactIds.addAll([SELECT ContactId FROM Case]);
contactIds.addAll([SELECT ...
2
votes
enable "Data Protection and Privacy" when creating scratch org
The Data Protection and Privacy preference can be automatically enabled via the scratch org definition file (e.g. project-scratch-def.json) using the settings.orgPreferenceSettings....
2
votes
enable "Data Protection and Privacy" when creating scratch org
You can set this inside the org preferences.
OrgPreference.settings-meta.xml
<?xml version="1.0" encoding="UTF-8"?>
<OrgPreferenceSettings xmlns="http://soap.sforce.com/2006/04/metadata">...
2
votes
Accepted
Configure double opt-in
Correct, by default this isn't enabled for Marketing Cloud lists.
Simply create Admin Assist type of a support ticket requesting "List Double Opt-In" feature activation.
1
vote
Salesforce SDK is sending events even with the analytics disabled
The event you've identified is not an 'analytic'. It is an identity update which means something related to the contact/device was updated. It could be the contact key, an attribute, the application ...
1
vote
An email of transnational nature, but sent all at once
This is exactly the kind of scenario where you can utilize the standard Send Classification for Transactional Sends (for emails).
As long as the content of the Email corresponds to the requirements ...
1
vote
Accepted
An email of transnational nature, but sent all at once
Regarding Emails sends, you just need to create a new Send Classification and select Transactional as CAN-SPAM Classification. See image below.
Make sure you don't check the "Honor source and ...
1
vote
Verify if a customer already opted out to be deleted
If the user re-engages with your business thereby creating a Lead, you are not obligated to ignore it. With GDPR you have to remove their info when requested but that's a point in time removal. Any ...
1
vote
Checking for multiple values with CONTAINS
No. Simply put, that syntax isn't valid. The OR operator can't work that way, just as we can't write:
YEAR(CreatedDate) = 2009 || 2010
It simply does not work that. You could use || instead of OR, ...
1
vote
Accepted
Salesforce Inbox Application under GDPR Compliance
As per the Salesforce Spring '18 Release Notes -
Prevent users from getting read receipts for email messages they send. Read receipts include information such as when the recipient opens the message ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
gdpr × 36marketing-cloud × 13
email × 3
contact × 3
rest-api × 2
salesforce1-app × 2
leads × 2
data-export × 2
tracking × 2
individual × 2
consent-management × 2
apex × 1
visualforce × 1
lightning-aura-components × 1
soql × 1
javascript × 1
salesforcedx × 1
api × 1
process-builder × 1
deployment × 1
soap-api × 1
validation-rule × 1
security × 1
ssjs × 1
automationstudio × 1