Pardot Permissions for Extreme Customization
16 Sep 2019
These documents presume that you created a new Salesforce Profile (in my case, I called it “Pardot Data Sync“) and a new Salesforce User to serve as your Pardot User responsible for syncing data.
If you set object permissions on Lead for your Pardot Data Sync profile to “View All Records” and “Read,” thinking you’re not letting Pardot create Leads … you’d be wrong. You have to give it no permissions whatsoever to keep it from creating leads.
That’s fine … we’re a “Contact-only” organization and don’t want Pardot creating any new records in Salesforce anyway.
The “sync to CRM” button seems hopelessly broken w/ an “ask Pardot for help” error message within Pardot, but the “Sync to Pardot” button in Salesforce gives useful error messages in Pardot logs.
So … let’s start with “Contact” as “View All Records” and “Read,” with no checkboxes checked except the ones you can’t un-check.
I needed to give “read” permissions to the following Contact fields for my connector profile:
- AccountId
- EmailBouncedDate
- EmailBouncedReason
- Fax
- HasOptedOutOfEmail
- LeadSource
- MailingAddress (all the native Salesforce fields that make it up)
- Phone
- Title
- 2 custom fields I’d told Pardot to look out for because I was using them in testing
I decided to give “edit” permissions to all the “Pardot”-specific Contact fields
https://pi.pardot.com/prospectSyncError/prospects
NAME COMPANY SCORE GRADE ERROR ON ERROR LAST ACTIVITY ACTIONS
[email protected] View in CRM 0 Sep 16, 2019 4:07 PM : Unknown INVALID_FIELD: select AccountId, Department, Email, EmailBouncedDate ^ ERROR at Row:1:Column:8 No such column 'AccountId' on entity 'Contact'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
This prospect has a sync error: Unknown INVALID_FIELD: EmailBouncedDate, EmailBouncedReason, Fax, FirstName, HasOptedOutOfEmail ^ ERROR at Row:1:Column:76 No such column 'Fax' on entity 'Contact'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
Okay, so now we're at "fax" instead of "AccountId" ... getting warmer as I set read permissions field by field...
Yay -- now we're at ": Unknown INVALID_FIELD: Id, IsPersonAccount, LastName, LeadSource, MailingCity, MailingCountry ^ ERROR at Row:1:Column:143 No such column 'LeadSource' on entity 'Contact'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names."
: Unknown INVALID_FIELD: IsPersonAccount, LastName, LeadSource, MailingCity, MailingCountry, MailingPostalCode ^ ERROR at Row:1:Column:155 No such column 'MailingCity' on entity 'Contact'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
: Unknown INVALID_FIELD: MailingState, MailingStreet, OwnerId, Phone, pi__campaign__c, pi__comments__c ^ ERROR at Row:1:Column:241 No such column 'Phone' on entity 'Contact'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
: Unknown INVALID_FIELD: pi__utm_term__c, Salutation, SystemModstamp, Title, MailingZip__c, MailingCity__c ^ ERROR at Row:1:Column:746 No such column 'Title' on entity 'Contact'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
: Unknown INVALID_FIELD: Salutation, SystemModstamp, Title, MailingZip__c, MailingCity__c, IsDeleted ^ ERROR at Row:1:Column:753 No such column 'MailingZip__c' on entity 'Contact'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
Your connector has been paused because of Marketing Data Sharing field validation failures. The field Opportunity is not visible on object AccountId
Your connector has been paused because of Marketing Data Sharing field validation failures. The field Contact is not visible on object MailingCity__c
Your connector has been paused because of Marketing Data Sharing field validation failures. The field Opportunity is not visible on object AccountId
Your connector has been paused because of Marketing Data Sharing field validation failures. The field Contact is not visible on object MailingCity__c
Prospects
View:
Date Range(Based on 12am EDT):
Filter:
TagsTools
NAME COMPANY SCORE GRADE ERROR ON ERROR LAST ACTIVITY ACTIONS
[email protected] View in CRM 0 Sep 16, 2019 4:41 PM : Unknown INVALID_FIELD: SystemModstamp, Title, MailingZip__c, MailingCity__c, IsDeleted, MasterRecordId ^ ERROR at Row:1:Column:768 No such column 'MailingCity__c' on entity 'Contact'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
[email protected] View in CRM 0 Sep 16, 2019 4:44 PM : Unknown INVALID_FIELD: OpportunityContactRole.Opportunity.Id, OpportunityContactRole.Opportunity.Amount ^ ERROR at Row:1:Column:216 No such column 'Amount' on entity 'Opportunity'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
: Unknown INVALID_FIELD: OpportunityContactRole.Opportunity.OwnerId, OpportunityContactRole.Opportunity.Probability ^ ERROR at Row:1:Column:477 No such column 'Probability' on entity 'Opportunity'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
: Unknown INVALID_FIELD: OpportunityContactRole.Opportunity.StageName, OpportunityContactRole.Opportunity.Type ^ ERROR at Row:1:Column:571 No such column 'Type' on entity 'Opportunity'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
: Unknown INVALID_FIELD: LastModifiedDate, OwnerId, IsDeleted, AnnualRevenue, BillingCity, BillingCountry ^ ERROR at Row:1:Column:69 No such column 'AnnualRevenue' on entity 'Account'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
This is getting silly ... see https://pi.pardot.com/prospectAccount/configureFields
Prospects
View:
Date Range(Based on 12am EDT):
Filter:
TagsTools
NAME COMPANY SCORE GRADE ERROR ON ERROR LAST ACTIVITY ACTIONS
Katietest20190522a McTesterson View in CRM Medtronic 0 Sep 16, 2019 4:57 PM CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY: entity type cannot be updated: Contact
This prospect has a sync error: entity type cannot be updated: Contact
BUUUUUUUT ... "Medtronic" account change from Salesforce- _did_ come through to the Prospect and Sep 16, 2019 4:57 PM is Prospect last updated date, so we got the "reading" part to work!
And "sync with CRM" from the Pardot side now works.
Also, w/o prompting from me, Katietest20190515a McTesterson ended up getting a first and last name, but then went into the Pardot recycle bin (because no "OCBTEST" or whatever the rule is for staying out of the recycle bin).
Still can't create a new Prospect w/ the same e-mail as an existing Contact and get it to sync, though.
[email protected]
An error has occurred. Please contact Pardot Support for more information.
Now ... how to restrict write-back responsibly...
Okay, so I got rid of "xyzzyHi" in Salesforce MailingZip__c and did "Sync with CRM" from the Pardot side on my working Prospect.
It's still there in pardot w/ a message of " Cannot sync with Salesforce because the connector user’s profile permission is ‘Read Only’. "
It's still gone in SF ... clicking "Send to Pardot" now.
No change in Pardot, but no errors in the log either.
Changing Medtronic to 3M and syncing from SF button.
Okay, Pardot updated Medtronic to 3M but won't clear out _either_ field's "xyzzyHi" value _(neither "Zip," where it had propagated to from "MailingZip__c" in Salesforce, or the custom field)_.
I hand-changed the values in Pardot & synced PD-side ... same error. I cleared them out & synced PD-side: good to go. " Prospect synchronized successfully"
All right, so ... do I dare open things up a little on Contact permissions?
Might as well, I guess.
Okay, filled in custom field on Pardot, opened up the Salesforce sync.
This prospect has a sync error: Unable to create/update fields: MailingZip__c. Please check the security settings of this field and verify that it is read/write for your profile or permission set.
Or, from the SF side:
Invalid field for insert or update: Unable to create/update fields: MailingZip__c. Please check the security settings of this field and verify that it is read/write for your profile or permission set.
But it did pull down a SF change back to Medtronic.
------------------------------------
Your connector has been paused because of Marketing Data Sharing field validation failures. The field Lead is not visible on object Gender__c
Your connector has been paused because of Marketing Data Sharing field validation failures. The field Contact is not visible on object MailingCity__c
Your connector has been paused because of Marketing Data Sharing field validation failures. The field EnrollmentrxRx__Enrollment_Opportunity__c is not visible on object Acad_Discipline_Explanation__c
Prospect and custom object sync has been paused since Sep 16, 2019 5:37 PM CDT. If sync is paused for more than 30 days, you'll need to do a full sync to get all updates.