Bulk User Import
The SaaSquatch portal provides a quick and easy way to bulk upload users into your SaaSquatch project to create or update user information.
🔗 Bulk User Import
Imported new users or update existing users in bulk.
- Head to your SaaSquatch account.
- In the upper right corner of your SaaSquatch account select either your Live or Test tenant.
- Click "Participants" in the upper header of your SaaSquatch account.
- Click "Import Users" on the right side of the Participants page.
- Select "User" from the Import Type section.
- Click "Select & Upload" and choose the file to import.
- Click "Start Import" to begin the import.
- When the import completes a confirmation email is sent.
Bulk User imports may take up to 30 minutes depending on queue and file size.
🔗 Upload Format & Recommendations
- SaaSquatch accepts bulk user imports submitted in
.csv
or.jsonl
file formats. - Fields are case sensitive.
- It is recommended that each import does not exceed 500,000 entries.
- Please reference our sample CSV import file and sample JSONL import file.
🔗 Fields
Bulk user imports support both Standard Fields and Custom fields in the upload file.
🔗 Standard Fields
Standard fields are parsed with the same validation as our Open Endpoint User Upsert API call:
Field | Type | Description |
---|---|---|
accountId | Required string | The unique identifier of the Account that this user belongs to. |
id | Required string | The unique identifier provided for this user. |
firstName | string | The user's first name |
lastName | string | The user's last name |
string | The email address for the user. | |
referable | boolean | Flag used by the SaaSquatch system to determine whether a user is able to be referred. Note: Flag must be spelled with only one r for status to be modified successfully. |
locale | string | The user's locale, used for Internationalization. The locale must be of the format language_COUNTRY where the language code must be lowercase and the country code must be uppercase. The separator must be an underscore. |
countryCode | string | The user's locale, used for Internationalization. The user's country code (e.g CA) |
referredBy.code | string | The referral code of the Referrer who referred this user. |
referralCodes.{programId} | string | The vanity referral code for this user to share for the specified program (automatically generated if not included) |
sharelinks.{programId} | string | The vanity sharelink for this user to share for the specified program (automatically generated if not included) |
dateCreated | string | The user's creation date |
imageUrl | string | Optionally used in widgets, emails, and themes. If you provide a absolute profile image URL the minimum image size is 80px x 80px. |
dateUsTaxFormSubmitted | integer | The date that a user's W-9 Tax Form was marked as collected. Used for W-9 Compliance on your tenant, if configured |
customFields.{fieldName} | string | Use this structure to include a custom field of your choosing |
paymentProviderId | string | The paymentProviderId is either the Stripe Customer ID or the Recurly Account ID. Note: This field cannot be updated. Do not include this arguement on an API-only program, or unless looking to set it. Classic only Note: Only used by classic referral programs. |
referralCode | string | The referral code used for sharing by this user Classic only Note: Only used by classic referral programs. |
referredBy.isConverted | string | The referral status of the Referred User. Classic only Note: Only used by classic referral programs. |
🔗 Custom Fields
Custom user fields allow for data unique to your participants. Add a custom fields to the column header in this format: customFields.yourCustomFieldName
Growth Automation programs allow for triggering goals based on custom user fields.
Example: The Birthday Program allows for a user's birthdate to trigger a goal. First, upload the participant's birthday in --MM-DD format in the customFields.birthday field. Then set the goal to convert on or around their birthday.
Example: Reward participants when they renew their subscription membership. First, include the custom field customFields.subscriptionPaid with the value of yes. Then, set the goal to convert when when customFields.subscriptionPaid is equal to yes.
Note: Custom fields are not able to accept array or object values.
🔗 User Segments
You can include or remove participants from a specific user segment. during the bulk user upload process.
- Head to your SaaSquatch account.
- In the upper right corner of your SaaSquatch account select either your Live or Test tenant.
- Click "Participants" in the upper header of your SaaSquatch account.
- Click "Import Users" on the right side of the Participants page.
- Select "User" from the Import Type section.
- Click "Select & Upload" and choose the file to import.
- Select a segment from the dropdown list below "Select & Upload".
- Click "Start Import" to begin the import.
- When the import completes a confirmation email is sent.
Note: When a segment is selected all participants uploaded at that time will be added to or removed from the selected segment.
🔗 Results
When your upload completes you will receive an email notifying you of the result.
You can download import results from the Import and Export Jobs page within the Reporting section.
Please Note: Download links will expire after 30 days.
🔗 Successful Upload
If the import completes successfully, a file with the user information of those that were successfully imported will be generated and emailed to you.
The user information that is included in these results is the same as is found in our User Details Report.
🔗 Errors
If any non-fatal errors are encountered during the import, then a second results file will also be generated (in addition to the file with the successfully uploaded records). The errors file includes entries for each error that occurred, including the row number of the record (from the initial import file) that failed, and any associated error messages:
recordNumber | message | apiErrorCode | statusCode |
---|---|---|---|
2 | This request requires a valid non-empty id | BAD_REQUEST | 400 |
In the unlikely event that a fatal system error occurs and the import is interrupted, then the import will appear as aborted and will not recover. Please our Success Team for further assistance.