In this article it will cover how to import do not contact (DNC) information into the CRM using the two available import types:
Guest do not contact import which suppresses a specific guest profile and updates their consent record.
Email do not contact import which suppresses an email address.
Each import type serves a different purpose, stores data differently, and behaves differently in the CRM.
Understand and manage do not contact imports
The CRM provides two distinct suppression methods that work at different levels of the system. Outlined below is information on the guest do not contact import and email do not contact import.
Guest do not contact import
This import matches email addresses to existing guest profiles and updates the guest record directly. It writes to the lead_donotcontact table and sets the guest's marketingconsent_email field to false.
A profile update event audit record is created for each updated guest, documenting that the consent change resulted from a guest do not contact import task.
This import requires a matching guest record, if the email address does not exist in your database, no action is taken.
This is useful for the following reasons:
Processing unsubscribe requests where you want the guest's profile to reflect their preference.
Maintaining a complete audit trail of consent changes.
Guest-level privacy requests.
Situations where the consent status must be visible on the guest profile itself.
Email do not contact import
This import adds email addresses to a global suppression list called email_donotcontact table, preventing marketing communications to that email regardless of which guest profiles use it.
This import does not require a matching guest record to exist addresses are suppressed whether or not they appear in your database.
This is useful for the following reasons:
Unsubscribe lists from external systems.
Bounced email lists from your ESP.
Compliance-driven suppressions for example GDPR opt-outs.
Pre-emptive suppression of addresses that may appear on future guest records.
Suppression lists imported from other marketing platforms.
Key differences between the two imports
Listed below are the key differences between guest do not contact and email do not contact.
Aspect | Guest do not contact | Email do not contact |
What it suppresses? | A specific guest profile | An email address |
Database table. | lead_donotcontact | email_donotcontact |
Updates guest record? | Yes it sets marketingconsent_email to False | No |
Creates audit trail? | Yes it creates ProfileUpdateEvent record | No |
Requires existing guest? | Yes it skips unmatched emails | No it stores email regardless |
File requirement. | Single-column CSV this is email only | Single-column CSV this is email only |
First line. | Ignored | Ignored |
Using both import methods
In some cases, running both imports with the same email list provides additional protection. The benefits of using both methods are:
Prevent marketing emails from being sent.
Do not delete guest profiles.
Do not affect transactional emails.
Cannot be undone via bulk import.
When using both imports consider if you want to future-proof against new records. The Guest import only updates existing matches. If the same email address later appears on a new guest record through a PMS import, manual creation, or duplicate entry, the guest-level consent would not carry over but the email blocklist would still suppress it.
You want defense in depth. The email blocklist acts as a secondary safety net if there is ever a gap in your email sending logic.
It might be sufficient to only use guest import alone when, your email sending reliably checks guest-level consent before every send. You have strong duplicate detection that prevents the same email from appearing on multiple guest records. You prefer a single source of truth for consent management.
β οΈImportant: If someone wants to re-subscribe after being added to both lists, you will need to remove them from both places. Document your process accordingly.
Guest do not contact import
Before performing any do not contact import the following needs to be completed before starting the import:
Prepare your CSV file with the correct format for the chosen import type.
Remove invalid or placeholder values such as NULL, NONE, or TEST.
Ensure you have legal justification for adding these contacts to do not contact status.
Decide whether you want to place the imported profiles or emails into a segment for tracking.
If unsure which import to use, consult the SHR support team [email protected]
πNote: Do not contact status must only be applied for compliant and documented reasons.
A do not contact import cannot be reversed through bulk import.
The guest do not contact import matches email addresses to existing guest profiles and updates their consent status directly on the profile.
This import is processed by the CRM.ImportNotContactSvc service or CRM.ImportNotContactTask scheduled task, which reads pending import jobs and processes each email address.
Use this import when:
A guest wants to stop receiving marketing and you need their profile to reflect this preference.
You require an audit trail of consent changes.
The property has a privacy request that must be documented at the profile level.
File format requirements for guest do not contact import
Outlined below is the information that is required in a CSV file when uploading it for guest do not contact.
The CSV file should contain:
One column only with email addresses.
Header row required can be blank or set to email.
One email address per row.
File must be .csv format.
File must not contain blank rows.
Create a CSV file for guest do not contact import
Follow the steps below to create a properly formatted CSV file for the guest do not contact import.
Open Microsoft Excel or Google Sheets.
In cell A1, enter email as the header or leave it blank.
Starting in cell A2, enter one email address per row.
Verify that no rows are blank and no email addresses contain quotation marks.
Click File and click Save As to save the file. Or click File and click Download if using a Google Sheets). Select CSV (Comma delimited) (*.csv) as the file type.
Name your file descriptively and click Save.
Upload the guest do not contact import file
Follow the steps below to import profile-level do not contact records.
From the left navigation menu, click Profile Management and click Bulk Import.
Click the tab labeled Guest Do Not Contact Import.
Click the button labeled Guest Do Not Contact Import.
Click Upload File and select your CSV file.
Select a reason from the dropdown: UNSUBSCRIBED, BOUNCED or MANUAL.
Click Save and Close to start processing.
How the CRM processes guest do not contact records
Below will outline how the CRM system will process each email address in the CSV that matches an existing guest profile, the system.
Inserts a record into the lead_donotcontact table with the reason, timestamp, channel set to email and comment set to import.
Updates the guest's marketingconsent_email field to False.
Creates a ProfileUpdateEvent audit record with the operation type UpdateMarketingConsent_Email and a description noting the change was due to Guest Do Not Contact Import Task.
πNote: If an email address does not match any existing guest profile, it is skipped.
At profile-level the suppression will behavior in the following way:
Prevents all marketing emails sending to this profile.
Profile remains visible in all reporting and searching.
Consent status is visible on the guest record.
Suppression persists until manually reversed through a compliant opt-in process.
Troubleshooting guest do not contact imports
Outlined below are some troubleshooting issues relating to the guest do not contact import.
Profiles not updated:
Email addresses may not match any existing guest records.
File format may be incorrect.
Required header row may be missing.
Import fails entirely:
File may not be in CSV format.
Header row may be missing.
Invalid characters or unsupported symbols may be present.
Guest still receiving emails:
They may have multiple profiles with different email addresses.
Consider whether email do not contact should also be applied.
Verify the correct profile was updated by checking the guest record.
Email do not contact import
The email do not contact import adds email addresses to a global suppression list and prevents them from receiving any marketing communication sent through the CRM. This import does not look up or modify guest profiles. It only adds records to the email_donotcontact table.
File format requirements for email do not contact import
Outlined below is the information that is required in a CSV file when uploading it for email do not contact import.
The CSV file should contain:
The first line in the file is ignored. Leave it empty or set the value to email.
Enter one email per line without any single or double quotes.
If there are any extra columns in the CSV file it will be ignored and invalid emails will be skipped or result in failures.
Create a CSV file for email do not contact import
Follow the steps below to create a properly formatted CSV file for email do not contact import.
Open Microsoft Excel or Google Sheets.
In cell A1, enter email as the header or leave it blank.
Starting in cell A2, enter one email address per row.
Verify that no email addresses are wrapped in single or double quotes.
Click File and click Save As to save the file. Or click File and click Download if using a Google Sheets). Select CSV (Comma delimited) (*.csv) as the file type.
Name your file descriptively and click Save.
Upload the email do not contact import
Follow the steps below to import email-level do not contact records.
From the left navigation menu, click Profile Management and click Bulk Import.
Click the tab labeled Email Do Not Contact Import.
Click the button labeled Email Do Not Contact Import.
Click Upload File and select your CSV file.
Click Save and Close to begin import processing.
How the CRM processes email do not contact records
Below will outline how the CRM system will process email do not contact records When the import runs, the system:
Inserts a record into the email_donotcontact table for each email address.
Stores a timestamp and a comment of import.
Does not look up guest profiles or modify any guest data
The suppression applies to that email address across all profiles that use it. Transactional emails will still send based on legal requirements.
πNote: Email-level suppression remains until the guest opts in again through a compliant process.
Troubleshooting email do not contact imports
Outlined below are some troubleshooting issues relating to the email do not contact imports.
Email not suppressed:
Check that the file contains only email addresses.
Confirm the email uses correct formatting for example [email protected]
Import fails:
Common causes include: CSV has more than one column, file includes quotation marks, first line contains invalid characters, or file contains blank rows.
Frequently asked questions
Outlined below are some frequently asked questions.
What is the difference between email do not contact and guest do not contact?
Guest do not contact updates the guest profile's consent status and creates an audit trail. Email do not contact adds an email address to a global suppression list without modifying guest records.
Do transactional emails still send?
Yes, transactional communications may still send depending on legal requirements.
Can a do not contact import be reversed?
Not through bulk import. A guest must re-consent through the correct opt-in process.
Should I use email do not contact or guest do not contact for unsubscribes?
For most unsubscribe requests, email do not contact ensures suppression applies universally. Use guest do not contact when you need the guest's profile to reflect their preference with an audit trail. Consider using both for comprehensive coverage.
Do not contact imports create new profiles?
No. Guest do not contact only updates existing profiles and skips unmatched emails. Email do not contact stores email addresses regardless of whether a profile exists.
What happens if I import the same email to both?
The email will be suppressed at both levels. Your email sending logic checks both tables, so the address will be blocked regardless of which check runs first. If the guest later wants to re-subscribe, you will need to remove them from both the email_donotcontact table and update their guest profile.
