This function allows CRM users to upload CSV files containing profile or contact data. Guest bulk import is commonly used for:
Marketing list uploads.
Contact records gathered from events or offline lists.
Imports from non-integrated or legacy systems.
Initial profile loading during implementation.
Guest bulk import creates or associates profiles so they can be included in segments, email campaigns or loyalty programs.
Key characteristics of guest profile information
Listed below are some of the key characteristics of the guest profile information.
Creating new marketing only or hotel guest profiles.
Deduplication and auto-matching to existing guest profiles.
Mapping of uploaded fields to CRM fields.
Automatic email validation.
Assigning imports to a CRM segment.
Optional segment tagging for tracking.
The CRM will not overwrite existing profile information during a guest bulk import.
Before performing a guest bulk import the following should be considered:
A segment must already exist.
Guest bulk import always assigns imported records to a segment.
All fields in your CSV that you want imported must already exist as CRM fields.
For custom data, UDF (user-defined fields) must be created beforehand.
Remove duplicate records and empty required fields.
Remove placeholder data such as:
Emails like [email protected], none@..., fake@...
Names such as test, none or fake.
Null placeholders.
Empty rows.
Default date entries like 01/01/1900
Confirm loyalty program codes (if included) match CRM values.
Confirm loyalty dates, if included use the proper date format.
Verify member level or tier codes match your system configuration before importing.
🤓Tip: Start by importing a small sample file for example five to ten rows to confirm correct mapping before uploading a full list.
Create a CSV file to upload guest profile information
When performing an upload of guest profile information a CSV file must be created. Outlined below are the general formatting rules that are required to upload the file successfully.
Save your file using .csv format. UTF-8 encoding is recommended.
Every row must contain content and blank rows need to be removed.
Header row is required, first row must contain column names. Each header must have its own column.
Example: First name and last name must be in separate columns.
Column headers must match CRM field names to map automatically.
If they do not match, you must manually drag-and-drop them during import.
Required fields are shown in red in the CRM’s target column section.
Data that does not meet formatting rules for example impossible dates will cause errors.
Fields exceeding maximum length are truncated, not rejected.
File encoding
The import system supports multiple file encodings with automatic detection:
UTF-8 (recommended): Full support for international characters including accented characters.
UTF-8 with BOM: Automatically detected and supported.
Unicode (UTF-16 LE): Supported.
Big Endian Unicode (UTF-16 BE): Supported.
Windows-1252 (Western European): Used as fallback for some CSV parsing operations.
Save CSV files in UTF-8 encoding for best compatibility with international characters.
Accented characters
Name fields (FirstName, LastName, MiddleName) fully support accented characters such as é, ñ, ü, ö, à, and ç. The system does not apply character filtering to name fields, they are only truncated to their maximum length.
Examples of valid names: José García, François Müller, Søren Østergård, Björk Guðmundsdóttir
Special characters in address fields
Address fields (Address1, Address2, City, Region) and certain other fields may have the following special characters removed during processing:
Characters Removed |
@@ (double at sign) |
+ (plus sign) |
' (single quote/apostrophe) |
-- (double hyphen) |
% (percent sign) |
^ (caret) |
& (ampersand) |
? (question mark) |
( ) (parentheses) |
< > (angle brackets) |
[ ] (square brackets) |
{ } (curly braces) |
/ \ (slashes) |
; (semicolon) |
: (colon) |
" (double quote) |
📌Note: The # character is allowed in address fields and is not removed.
Phone number formatting
Phone numbers have the following characters automatically removed during processing: spaces, parentheses, hyphens, and periods.
Examples:
Input: +1 (212) 555-1234 → Stored as: +12125551234
Input: 212.555.1234 → Stored as: 2125551234
Numbers starting with + will have the country code automatically parsed and separated.
Email address validation
Email addresses are validated and cleaned automatically. The system removes surrounding quotes, angle brackets, and extracts email from formats like "Name" [email protected].
Allowed characters in email local part (before @): letters (a-z, A-Z), numbers (0-9), underscore, and special characters (!#$%&'*+/=?^{|}~-). Periods are allowed but not at start/end or consecutively.
Hotel guest import
Outlined below are the required fields when creating a hotel guest import CSV file.
Field | Description | Field Type | Limit / Values |
First Name | Guest’s given name. Used for profile creation, matching and marketing personalization. | Alphanumeric | 64 characters; accented characters allowed |
Last Name | Guest’s family name. Used for profile creation, matching and marketing personalization. Required for creating a valid guest profile. | Alphanumeric | 64 characters; accented characters allowed |
Primary email address for the profile. Used for profile matching, marketing personalization and campaign communication. | Alphanumeric | 128 characters; valid email format | |
Profile Create Date | The date the profile was originally created. Must match the selected date format during import. Used for reporting and onboarding automation. | Date | Must match selected date format |
Outlined below are the optional fields when creating a hotel guest import CSV file.
Field | Description | Field Type | Limit / Values |
Salutation | "Mr", "Mrs", "Ms" | Alphanumeric | 5 characters; special characters may be removed Any characters outside of the 3 allowed, will be ignored |
Middle Name | Guest’s middle name or initial. | Alphanumeric | 1 character; accented characters allowed |
Address1 | Primary street address. | Alphanumeric | 256 characters; some special characters removed (# allowed) |
Address2 | Secondary street address (apartment, suite, etc.). | Alphanumeric | 256 characters; some special characters removed (# allowed) |
City | Guest’s city of residence. | Alphanumeric | 128 characters; some special characters removed |
Region | State, province, or region. | Alphanumeric | 128 characters; some special characters removed |
Zip | Postal or ZIP code. | Alphanumeric | 16 characters; no character restrictions |
Country | Country code. Must match CRM’s country list. | Alphanumeric | 16 characters; no character restrictions |
Phone | Primary phone number. | Alphanumeric | 32 characters |
Phone Mobile | Guest’s mobile phone number. | Alphanumeric | 32 characters |
Birthday | Guest’s date of birth. Format must match selected import date format. | Date | Must match selected date format |
Gender | Guest’s gender. Free text unless customized by client. | Alphanumeric | 1 character (M or F) |
Company | Company or organization associated with the guest. | Alphanumeric | 64 characters; no character restrictions |
Loyalty Member ID | Used to assign or match a loyalty membership. Must match existing loyalty membership if updating. | Alphanumeric | 32 characters; no character restrictions |
Loyalty Tier | Tier assignment for existing loyalty programs. Ignored unless “Ignore Tier Auto Assignment” is checked. | Alphanumeric | 128 characters; no character restrictions |
Language | Guest communication language (e.g., EN, ES, FR). | Alphanumeric | 15 characters |
Member SignUp | Date the guest signed up for loyalty. Must match selected import date format. | Date | Must match selected date format |
SignUp Source | Source of sign-up (e.g., Web, Front Desk, POS). | Alphanumeric | 255 characters; no character restrictions |
Secondary Loyalty Program Code | Used when supporting multiple loyalty programs. Must match CRM program code. | Alphanumeric | 256 characters |
Secondary Member ID | Related loyalty membership ID for the secondary program. | Alphanumeric | 32 characters |
Secondary Member Level | NOT USED. Secondary Membership Tiers/Levels not supported | Alphanumeric | 50 characters |
OptIn/OptOut | Marketing consent flag. Values typically: OptIn, OptOut, Unknown. | Alphanumeric | "N" = Opt Out (case-insensitive); Empty = Opt In |
Ignore Tier Auto Assignment | Prevents the system from reassigning tiers based on earning rules. | Alphanumeric | "NOTEVER" = True, box checked (case-insensitive); Empty = False, box not checked |
Last Member Tier Change Date | Date of last loyalty tier change. Must match selected date format. | Date | Must match selected date format |
User Defined1–User Defined10 | Custom CRM fields. Must exist in CRM before importing. | Alphanumeric | 255 characters each; some special characters removed |
Marketing Consent Email | Explicit marketing consent value for email communications. | Alphanumeric | "explicit" or "implied" (case-insensitive); default: implied |
Marketing Consent SMS | Explicit marketing consent value for SMS. | Alphanumeric | "explicit" or "implied" (case-insensitive); default: implied |
Email Consent Expiration Date | Expiration date for IMPLIED email consent. Must match selected date format. If consent is "implied" and no date provided, system uses client default expiration period. | Date | Must match selected date format |
📌Note: If you provide a loyalty member ID but leave loyalty tier empty, the system will assign the default program level.
Marketing only import
Marketing only imports support all the same optional fields as hotel guest imports. While FirstName and LastName are not mandatory, including them when available improves personalization capabilities.
📌Note: FirstName and LastName are not required for marketing only imports, but including them when available improves personalization capabilities.
Outlined below are the required fields when creating a marketing-only import CSV file.
Field | Description | Field Type | Limit / Values |
Primary email address used for communication and for dedupe matching. | Alphanumeric | 128 characters; valid email format | |
Profile Create Date | Date the profile was originally created. Must match selected date format. | Date | Must match selected date format |
Outlined below are the optional fields when creating a marketing-only import CSV file.
Field | Description | Field Type | Limit / Values |
Salutation | "Mr", "Mrs", "Ms" | Alphanumeric | 5 characters; special characters may be removed Any characters outside of the 3 allowed, will be ignored |
First Name | Recommended for personalization but not required. | Alphanumeric | 64 characters; accented characters allowed |
Last Name | Recommended for profile completeness but not required. | Alphanumeric | 64 characters; accented characters allowed |
Middle Name | Guest's middle name or initial. | Alphanumeric | 1 character; accented characters allowed |
Address1 | Primary street address. | Alphanumeric | 256 characters; some special characters removed (# allowed) |
Address2 | Secondary street address. | Alphanumeric | 256 characters; some special characters removed (# allowed) |
City | City of residence. | Alphanumeric | 128 characters; some special characters removed |
Region | State or province. | Alphanumeric | 128 characters; some special characters removed |
Zip | Postal code. | Alphanumeric | 16 characters; no character restrictions |
Country | Country of residence. | Alphanumeric | 16 characters; no character restrictions |
Phone | Landline phone number. | Alphanumeric | 32 characters |
Phone Mobile | Mobile phone number (used for SMS). | Alphanumeric | 32 characters |
Birthday | Guest's date of birth. | Date | Must match selected date format |
Gender | Free-text gender field. | Alphanumeric | 1 character (M or F) |
Company | Company affiliation. | Alphanumeric | 64 characters; no character restrictions |
Loyalty Member ID | If included, must be valid and will attempt to link profile to loyalty membership. | Alphanumeric | 32 characters; no character restrictions |
Loyalty Tier | Applies only when importing loyalty attributes intentionally. | Alphanumeric | 128 characters; no character restrictions |
Language | Communication language. | Alphanumeric | 15 characters |
Member SignUp | Loyalty signup date. | Date | Must match selected date format |
SignUp Source | How the guest signed up. | Alphanumeric | 255 characters; no character restrictions |
Secondary Loyalty Program Code | Additional loyalty program code. | Alphanumeric | 256 characters |
Secondary Member ID | Secondary loyalty membership ID. | Alphanumeric | 32 characters |
Secondary Member Level | Tier in secondary loyalty program. | Alphanumeric | 50 characters |
OptIn/OptOut | Email/SMS marketing consent general flag. | Alphanumeric | "N" = Opt Out (case-insensitive); Empty = Opt In |
Ignore Tier Auto Assignment | Suppresses automatic tier reassignment. | Alphanumeric | "NOTEVER" = True, box checked (case-insensitive); Empty = False, box not checked |
Last Member Tier Change Date | Required only if manually importing tier changes. | Date | Must match selected date format |
User Defined1–User Defined10 | Custom fields available in CRM. | Alphanumeric | 255 characters each; some special characters removed |
Marketing Consent Email | Explicit email marketing consent. | Alphanumeric | "explicit" or "implied" (case-insensitive); default: implied |
Marketing Consent SMS | Explicit SMS consent. | Alphanumeric | "explicit" or "implied" (case-insensitive); default: implied |
Email Consent Expiration Date | Expiration date for email consent. | Date | Must match selected date format |
SMS Consent Expiration Date | Expiration date for SMS consent. | Date | Must match selected date format |
How the CRM handles guest bulk import data
Outlined below is how the CRM handles guest bulk import data.
Email validation
The CRM performs built-in email verification:
Invalid or bounced emails are flagged.
Emails flagged incorrectly may still be included if they have previously received successful sends from CRM.
Matching and deduplication
The CRM uses existing match and auto-merge rules:
If a matching profile exists, it will be used.
No new duplicate profile will be created.
Existing CRM profiles will not be overwritten with new import data.
Profile creation behavior
Imported profiles become:
Marketing only profiles if selected or hotel guest profiles used for stay records or loyalty.
Marketing Only profiles become guest profiles automatically when:
A reservation is created for them.
They merge with an existing true guest profile.
Performance
Approximate processing speed: 500 records per minute.
Guest bulk import
Follow the steps below to complete a guest bulk import.
From the left navigation menu, click Profile Management and click Bulk Import.
Click the tab labeled Guest Bulk Import and click ↑ Guest Bulk Import to start a new import.
Click Upload File and select your CSV file.
The file will attach but will not process until you click Save and Close.
Select a profile type:
Hotel guest this should be used when importing profiles with stay history or potential loyalty members.
Marketing only this should be use for marketing lists or non-guest contacts.
Click Segment Tag and select the segment tag this import should be assigned to.
This segment tag must already exist.
Click Segments and select the segment this import should be assigned to.
This segment must already exist.
Additional options:
Reactivate past manual delete from Segment this re-adds profiles previously removed from the segment.
Keep existing member ID applies only when importing loyalty profiles.
Enter a tag this is optional.
Used for labeling this specific import for future filtering or reporting.
Cannot be reused from previous tags
Select date format:
MM/DD/YYYY, DD/MM/YYYY, YYYY/MM/DD or YYYY/DD/MM
Map your source columns to CRM profile columns:
Columns shown in blue are automatically matched.
Any unmatched columns appear at the top; drag them to their corresponding target field.
Required fields show in red until matched.
Click Save and Close.
If the upload begins processing successfully, you will see a confirmation banner.
View guest bulk import results
Follow the steps below to view import progress or results.
From the left navigation menu, click Profile Management and click Bulk Import.
Click Guest Bulk Import tab
On the overview screen, locate your import and check the status:
Completed.
Processing.
Failed.
Users will also receive an email from the system indicating success counts and providing a link to view those which were rejected along with the reason for rejection.
Click into the segment used for the import to view imported profiles.
Tips and best practices
Outlined below are helpful tips and best practices when bulk uploading.
Always upload a small test file first.
Use clean email lists — invalid addresses reduce campaign performance.
Avoid including contacts known to have opted out of marketing unless importing a do not contact list.
Ensure only valid data is included, especially names and email addresses.
Use segment tags to easily locate and validate imported records.
Use consistent formatting for phone numbers and email addresses across your CSV file.
Save CSV files in UTF-8 encoding for best compatibility with international characters.
Back up existing data before running large imports that might update existing profiles.
Review error reports carefully after each import to identify and correct systematic issues.
Troubleshooting
Outlined below are some answers that can help with troubleshooting issues.
The CRM says a required field is missing
Check the target column list for fields highlighted in red.
Drag the appropriate column from your file into that field.
Email validation fails for valid emails
Reasons may include:
Temporary email provider issues.
Unknown email server response.
A provider classified as risky at the time of validation.
The CRM still includes previously valid CRM emails even if current validation flags them.
Duplicate profiles are created
This should not occur unless:
Match rules are configured incorrectly.
Required matching fields were not included in the file
The imported profiles do not appear in the segment
Ensure the correct segment was selected before uploading.
Confirm the segment filters are not excluding the uploaded tag.
Check if reactivate past manual delete was required but not selected.
Dates appear incorrect after import
Confirm the Date Format setting chosen during import matches your CSV formatting.
Loyalty tier not assigned
The loyalty tier value must match an existing tier code in the loyalty program.
Verify tier codes are entered exactly as they appear in loyalty setup and click membership tiers.
Language not saved
The language code must exist in the system language table.
The system first attempts to match by language code, then by ISO 639 code (2-character).
Verify language codes in CRM Setup and click System Languages.
Special characters missing from address fields
Certain special characters are automatically removed from address fields during processing.
The # character is allowed and preserved.
See the Character encoding and special characters section for the full list of removed characters.
Accented characters not displaying correctly
Ensure your CSV file is saved with UTF-8 encoding.
Accented characters are fully supported in name fields.
Frequently asked questions
Outlined below are some frequently asked questions.
Can a guest bulk import update existing profile fields?
No. Existing CRM profiles are not overwritten during a guest bulk import.
How many profiles can I import at once?
There is no strict limit, but processing speed is approximately 500 records per minute.
Should loyalty profiles be imported through Guest Bulk Import?
Only if they follow the proper loyalty format and you use keep existing member ID as needed.
How do I import only a list of emails?
Use the marketing only guest Import option
Can I undo an import?
No. However, you may remove imported profiles from segments manually if needed.
What is the difference between Hotel Guest and Marketing Only profile types?
Hotel Guest profiles are complete guest records for individuals who have stayed at your properties or are enrolled in your loyalty program. They require FirstName, LastName, Email, and ProfileCreateDate. Marketing Only profiles are for email contacts who may not have complete guest information and only require Email and ProfileCreateDate.
What happens if I provide a Loyalty Member ID but no Loyalty Tier?
The system will assign the default program level to the profile.
Why was my record rejected for a duplicate Loyalty Member ID?
When "Keep Existing Member ID" is enabled, the system checks for existing profiles with the same Loyalty Member ID. If a duplicate is found, the record is rejected to prevent data conflicts.
Are accented characters supported in name fields?
Yes. Name fields (FirstName, LastName, MiddleName) fully support accented characters such as é, ñ, ü, ö, à, and ç. Save your CSV file in UTF-8 encoding for best results.
Why are some special characters missing from my imported addresses?
Address fields have certain special characters automatically removed during processing, including apostrophes, ampersands, parentheses, slashes, and colons. The # character is allowed and preserved. See the Character encoding and special characters section for details.
What happens if a field exceeds the maximum character limit?
Fields exceeding maximum length are truncated to the allowed limit. The record is not rejected.
