The Acme Import Export tool can be used to import order data from external systems. Imports can be run one time to move order data into Acme or frequently to keep order data in Acme and in an external system in sync. Importing data involves uploading CSV files to Acme Back Office, running the files through a series of data checks, and then importing into your tenant. The tool can be accessed by going to Settings > Import Export. Note, exposure of the Import Export tool requires specific permissions.
Getting Access
Contact your CSM to set up your access to the Import Export tool and to assist with implementation of the correct Mapping.
Import Terms
Job: A Job is a container for a type of import. The Job has a set mappings associated with it. A Job will contain many Job Executions.
Mapping: The mapping is a description of how to read or write a column of data and determines where the data from the CSVs will be imported into Acme.
Job Execution: A job execution is one instance of the Job being run. It contains a list of files, and the results of processing those files. Note, not all files need to be included in a Job Execution. See below for a list of CSVs needed to import Order data.
Stage: Staging is the process of reading the files and storing them in a Staging database. This doesn't affect any data in Acme. During staging the mappings are applied.
Validate: The Validation step checks that the CSV files that have been staged are valid. This means that references between files are correct (i.e. organization_ids in memberships.csv refer to organizations in the organizations files) and other internal checks, such as duplicated IDs or invalid numerical values etc.
Any Validation errors are shown in the Logs tab of the Job Execution. Users can advance to the following steps if validation errors are thrown, but records with errors may not be successfully imported.
Common errors seen during Validation: Missing Organization, Missing Address, Column Too Long, Missing Customer, Missing Contact, Invalid Date Format, Duplicate ID (for IDs in the files- Address ID, customer ID, etc), Invalid Decimal, Unexpected Value, Invalid Date Logic, Missing Orders, Missing Memberships, Missing Membership Cards, Missing Email and Phone and Primary Address
Validate with Acme: This step validates that the staged data is valid where it references items that should already exist within Acme. In other words, it checks the data against the Acme database.
Common errors seen during Validate with Acme are: Duplicate ID (an ID that is in the file already exists as an ID in Acme), No Tickets Available (the quantity you are trying to import exceeds the ticket capacity on the event)
Import: This step actually imports the staged data into ACME, which is not a reversible operation. Only rows that don't have an error from validation are imported.
Which CSVs are needed?
For Order data:
Orders
Items
Customers (optional, but is required if customer_id in Order.csv is referring to a customer)
Organizations (optional, but is required if organization_id in Order.csv is referring to an organization)
Addresses (optional, but is required if primary_address_id in Address.csv is referring to an address)
Requirements for running an Order Import
Event Template can not be in locked status by another user.
Quantity can not exceed the current capacity limit of the event the orders are going to
Quantity can not exceed 100,000 tickets in the files being uploaded
If there is no time/date, the file will not be imported
Order Imports require an Item file and an Order file to be uploaded at the same time
How to Run an Import
Create an Import job
Click the “Create Import Jobs” button
For assistance with Order Import mapping, please contact your CSM
Create job execution
Click the “Create Job Execution” button
Choose files to upload
Order imports require an Orders and an Items file
Stage Data.
After clicking this button, you must manually hit ‘Refresh’ periodically until the status says "Staged"
Check for errors- this is the stage where any syntactical errors in the mappings will become apparent.
Validate Data
After clicking this button, you must manually hit ‘Refresh’ periodically until the status says "Validated"
If validation errors are found, they will appear in the Logs tab
This is where the data in the files is checked to ensure it is valid. For example: checking if the date format is valid, missing required fields, referencing to a invalid object...etc
Validate with ACME
This step checks the data from the files against the ACME database.
For example: check if an order record is already exist in the DB, make sure there is sufficient capacity in the event to handle the number of tickets attempting to be imported.
Import Data
Once validation errors have been addressed, import the files
After clicking this button, the status does not change but you will eventually see counts update at the bottom of the screen as records are imported.
How to Run an Import
Navigate to the Import Export Tool
In Acme B2B, go to Settings > Import Export
Create an Import job
Click the “Create Import Jobs” button
For assistance with Order Import mapping, please contact your CSM
Create job execution
- Click the "Create Job Execution" button
- Choose files to upload:
- Order imports require an Orders file and an Items file.
- Stage Data.
- The "Stage" button will activate once files are uploaded. It is activated when blue.
- Click the "Stage" button to run the staging process. Once it completes, the Status will change to "Staged" and the "Validate" button will become blue and active.
- Check for errors- this is the stage where any syntactical errors in the mappings will become apparent.
- Validate Data
- Once the "Validate" button is blue and active, click it to run the Validate process.
- When Validate completes, there are three possible statuses:
- Validation Failed- meaning 100% of the rows in the file(s) failed. You will need to fix the errors, re-upload, and re-stage before proceeding.
- Validation Completed with Errors- meaning at least 1 of the rows in the file(s) passed validation. The rows that passed validation will continue through the remaining import steps. The rows that failed Validation will not continue through the remaining steps.
- Validation Completed- meaning 100% of the rows in the file(s) passed. All of the rows will continue through the remaining import steps.
- If Validation errors are found, they will appear in the Logs tab
- This is the stage where data in the files is checked to ensure it is valid.
- Validate with ACME
- The "Validate with ACME" button will become blue and active if:
- Validate has finished with a status of either "Validation Completed" or "Validation Completed with Errors"
- Once the "Validate with ACME" button is active, click it to run the "Validate with ACME" process.
- When Validate with ACME completes, there are three possible statuses:
- ACME Validation Failed- meaning 100% of the rows in the file(s) failed. You will need to fix the errors, re-upload, and re-stage before proceeding.
- ACME Validation Completed with Errors- meaning at least 1 of the rows in the file(s) passed validation. The rows that passed validation will continue through the remaining import steps. The rows that failed Validation will not continue through the remaining steps.
- ACME Validation Completed- meaning 100% of the rows in the file(s) passed. All of the rows will continue through the remaining import steps.
- If ACME Validation errors are found, they will appear in the Logs tab
- This step checks the data from the files against the data in the ACME database. For example: check if an order record is already exist in the DB, make sure there is sufficient capacity in the event to handle the number of tickets attempting to be imported.
- The "Validate with ACME" button will become blue and active if:
- Import Data
- The "Import" button will become blue and active if:
- Validate with ACME has finished with a status of either "ACME Validation Completed" or "ACME Validation Completed with Errors"
- Once the "Import" button is blue and active, click it to run the "Import" Process
- Any potential Import errors will appear in the Logs tab
- Note, even if you close the Acme application the Import will continue to run
- The "Import" button will become blue and active if:
Data Formatting tips
Never open files in Excel, which inserts unwanted formatting that will cause the files to break. If the files absolutely must be opened in Excel, save accordingly:
Select all
Clear Formats
Do not double click in any cell (this can cause formatting to come back)
Export as CSV
All String data should be enclosed in a Double quotes ("), even if the data doesn’t contain a comma, or other delimiting character. This is to ensure the accuracy of the data. For example, "ACME Technologies, Inc.",”2017-01-01 12:30:00.000”
If a String includes a double quote as part of the string it should be replaced with two double-quotes.
Empty fields should use the value NULL for String, and 0 for Numeric
Case Sensitive for NULL; treat NULL as the NULL Object, and Null as String type.
NULL should NOT be quoted
The first row of every CSV file should contain the appropriate header (detailed for each CSV file below)
Each row in a CSV file has an ID field
This ID can be any value but must be unique for each line in the CSV file
IDs can sometimes just be a row index.
For Orders, Organizations, etc. generally the ID of the object in the source system should be used.
This ensures uniqueness of IDs that span multiple data migrations
The IDs are used to represent associations by referencing rows from other CSV files, for example the Items CSV contains an order_id field specifying its parent order in the Orders CSV.
Common Errors
CSV file | Field Name | Error Message | Description |
Any | id | <FILE NAME> : Duplicate IDs on Rows <Number, Number>. | The given row numbers contain duplicate id values. |
Any | n/a | Could not create <Item to be created>: 500 Internal Server Error | Creation failed in the Acme backend. |
Any | Can occur on any field with a NULL value that is trying to convert into a Boolean type. | For field <FIELD NAME>, defined as <MAPPING>: EL1001E: Type conversion problem, cannot convert from null to boolean. In CSV for <CSV file> for row <number>. | Trying to convert NULL to Boolean type. |
Any | Can occur on any field that needs to be convert into another type. | Type conversion problem | Trying to convert value to an inappropriate data type, e.g. converting a string to boolean. |
Items | id | Duplicated IDs on Rows X, Y, Z. | Rows X, Y, Z have the same value for item id. |
Items | event_start_date | event_start_date should have a value. | The event_start_date value in the Items csv is missing. |
Items | id | id '<ID>' should be less than 20 characters. | The id value must be less than 20 characters. |
Items | event_start_date | Items: event_start_date "<DATE>" should be of format yyyy-mm-dd HH:mm:ss | The event_start_date value is in the incorrect date format. |
Items | order_id | order_id '<ID>' should be less than 20 characters. | The order_id value must be less than 20 characters. |
Orders | order_number | Could not create Order <ORDER NUMBER>: 404 Not Found | The order attempting to be imported doesn't have a corresponding event. |
Orders | id | Duplicated IDs on Rows X, Y, Z. | Rows X, Y, and Z have the same value for Order ID. |
Orders | order_number | Order number <ORDER_NUMBER> already exists in Acme | The Order Number attempting to be imported already exists in Acme. |
Orders | order_id | The order already exists | The order trying to be imported already exists. |
Orders | qty | There are not enough tickets available to satisfy this order | The event in Acme does not have enough ticket capacity to import the number of tickets in the file. |