This document specifies the Allthings ERP Data Exchange format.
Customer Support will provide a data upload location (an AWS S3 Bucket).
Uploading a set of CSVs and a manifest.json file constitutes an Import Job.
The manifest.json
file acts as a trigger to begin the import process for the uploaded set of CSVs.
This file must be uploaded last to indicate that the Import Job should begin the import.
There are 14 recognised CSV files:
uuidRemappings.csv, properties.csv, groups.csv, units.csv, userRelations.csv,
utilisationPeriods.csv, tenantCheckIns.csv, tenants.csv,
propertyTeams.csv, agents.csv, agentPermissions.csv, serviceProviders.csv, collections.csv, collectionAssignments.csv.
It is not required that each CSV is included in each Import Job.
For example, it is possible to include only the agents.csv
file, or any other combination.
However, when inserting new data, the necessary data to resolve the foreign ID relationships must also be included.
Issues in parsing or resolving data relationships will result in an error, terminating the complete Import Job.
insert
update
The uuidRemappings.csv
file allows for the remapping of UUIDs on resources. Note: The uuidRemappings.csv
cannot be combined with other CSV files within a single import. Doing so will result in an import error.
Field | Type | Description |
---|---|---|
importType | Import Type | Always use "update" |
resource | Resource | The type of resource these UUIDs refer to |
oldUuid | UUID | The previous UUID |
newUuid | UUID | The new UUID |
The properties.csv
file imports property resource data.
Field | Type | Description |
---|---|---|
importType | Import Type | One of:insert , update |
id | UUID | Your UUID for this property |
name | string | The property name |
propertyOwner | string | Optional name of the property owner |
The groups.csv
file imports group data.
Field | Type | Description |
---|---|---|
importType | Import Type | One of:insert , update |
id | UUID | Your UUID for the group |
propertyId | UUID | The foreign UUID of the property the group belongs to (properties.csv id ) |
name | string | |
country | Country | |
city | string | |
streetName | string | The name of the street the structure is located on, e.g. Kaiser-Joseph-Strasse |
houseNumber | string | The number of the structure on the street, e.g. 123 |
zipCode | Postal Code | |
propertyOwner | string | Optional name of the property owner |
The units.csv
file imports unit data. It allows for associating groups with units.
Field | Type | Description |
---|---|---|
importType | Import Type | One of:insert , update |
id | UUID | Your UUID for the unit |
groupId | UUID | The foreign UUID of the group the unit belongs to (groups.csv id ) |
name | string | |
propertyOwner | string | Optional name of the property owner |
The utilisationPeriods.csv
describes utilisation periods.
Field | Type | Description |
---|---|---|
importType | Import Type | One of:insert , update , delete |
id | UUID | Your UUID for the utilisation period |
unitId | UUID | The foreign UUID of the unit the utilisation period belongs to (units.csv id ) |
startDate | Date | |
endDate | Date |
The tenants.csv
file describes registration codes for a tenant.
Field | Type | Description |
---|---|---|
importType | Import Type | One of:insert , update |
id | UUID | Your UUID for the tenant |
registrationCode | string | |
string | Optional | |
phone | Phone Number | Optional |
name | string | Optional |
The tenantCheckIns.csv
file describes the relation between a tenant and a utilisation period.
Field | Type | Description |
---|---|---|
importType | Import Type | One of:insert , update |
utilisationPeriodId | UUID | The foreign UUID of the utilisation period the tenant check-in is for (utilisationPeriods.csv id ) |
tenantId | UUID | The foreign UUID of the tenant tenant check-in is for (tenantss.csv id ) |
The agents.csv
file describes agent-user account data.
Field | Type | Description |
---|---|---|
importType | Import Type | One of:insert , update |
id | UUID | Your UUID for the agent |
string | ||
firstName | string | Optional |
lastName | string | |
phone | Phone Number | Optional |
serviceProviderId | UUID | Optional |
The propertyTeams.csv
file describes the relation between a property and an agent.
Field | Type | Description |
---|---|---|
importType | Import Type | One of:insert , or delete |
propertyId | UUID | The foreign UUID of the property that the team belongs to (properties.csv id ) |
agentId | UUID | The foreign UUID of the agent that belongs to the team (agents.csv id ) |
validFromDate | DateTime | Optional start date of the validity of the relation (if provided validToDate is required as well) |
validToDate | DateTime | Optional end date of the validity of the relation (if provided validFromDate is required as well) |
The userRelations.csv
file describes the relation between an agent and a resource
Field | Type | Description |
---|---|---|
importType | Import Type | One of:insert , or delete |
agentId | UUID | The foreign UUID of the agent that is responsible for the channel path (agents.csv id ) |
resourceId | UUID | The foreign UUID of the resource that the agent belongs to (resource.csv) |
resourceType | Resource Type | The type of the resource being referenced by the resourceId (property ) |
validFromDate | DateTime | Optional start date of the validity of the relation (if provided validToDate is required as well) |
validToDate | DateTime | Optional end date of the validity of the relation (if provided validFromDate is required as well) |
jobRole | string | Optional |
The agentPermissions.csv
file describes the agents permissions on a certain resource via predefined agentTypes
Field | Type | Description |
---|---|---|
importType | Import Type | One of:insert , or delete |
resourceType | Resource Type | The type of the resource being referenced by the resourceId (e.g. property ) |
resourceId | UUID | The foreign UUID of the resource that the agent belongs to resource.csv id |
agentId | UUID | The foreign UUID of the agent that is responsible for the channel path (agents.csv id ) |
agentType | Agent Type | Defines the type of an agent |
validFromDate | DateTime | Optional start date of the validity of the relation (if provided validToDate is required as well) |
validToDate | DateTime | Optional end date of the validity of the relation (if provided validFromDate is required as well) |
The serviceProviders.csv
file describes a service providers name + address
Field | Type | Description |
---|---|---|
importType | Import Type | One of:insert , or update |
id | UUID | Your UUID for the service provider |
name | string | Name of the service provider |
country | Country | |
city | string | |
streetName | string | |
houseNumber | string | |
zipCode | Postal Code | |
phone | Phone Number | Optional |
The collections.csv
file describes a collection
Field | Type | Description |
---|---|---|
importType | Import Type | One of:insert , or update |
id | UUID | Your UUID for the collection |
name | string | Name of the collection |
The collectionAssignments.csv
file describes the relation between a collection and a resource
Field | Type | Description |
---|---|---|
importType | Import Type | One of:insert , update or delete |
collectionId | UUID | The uuid of the collection |
resourceType | Resource Type | The type of the resource being referenced by the resourceId (e.g. property ) |
resourceId | UUID | The foreign UUID of the resource that the collection belongs to (resource.csv) |
The manifest.json
file controls the Import Jobs execution and behavior.
The upload/presence of a manifest.json
file at a Job Import upload location triggers the import process.
While Customer Support will set up default configuration for each ERP Import Customer, the manifest.json
file also allows for some customisation of options.
These options are outlined here:
Field | Type | Description | Default |
---|---|---|---|
agentPermissions | Array of Strings | List of permissions to be set for agent imported in the Property Teams file E.g. to set permissions for pinboard and documents ['pinboardAdmin', 'documentAdmin'] | ['tenantManager', 'pinboardAgent', 'serviceCenterAgent'] |
autoImport | boolean | Controls whether to automatically import, or to send confirmation email first | true |
locale | ISO-639 Language Codes and ISO-3166 Country Codes | Default locale. E.g. locale for new agents. en_US , de_DE |
en_US |
receiveAdminNotifications | boolean | Receives Notification-Mails for Tickets with no Assignee. | true |
reportEmails | Array of Strings or a combination of email address + report level either error or success |
List of email addresses which should receive report emails for this job | |
unitType | string | Controls the type of import Units, one of type 'rented' or 'owned' | 'rented' |
In the example above, "mr.foo@bar.test" and "mrs.foo@bar.test" receive report emails for all imports, while "test@bar.de" just receives reports about import errors.
if no default option should be overwritten, the manifest.json should include at least an empty JSON-Object:
The following table describes the expected data formats of data provided in the CSV files. Data is validated before import, and any errors are reported. Import Jobs with validation errors are not processed. In other words, a single invalid field will terminate the entire import process for all CSV files in the Import Job.
Type | Description | Example |
---|---|---|
Agent Type | One of: agent , externalAgent |
externalAgent |
Country | [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. | CH , DE , FR |
Date | [ISO 8601 Calendar Date](https://en.wikipedia.org/wiki/ISO_8601#Calendar_dates) (yyyy-mm-dd ) |
2001-05-11 , 2018-03-06 , 2063-04-05 |
DateTime | [ISO 8601 Combined date and time representation](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) | 2015-01-17T18:23:02+06:45 , 2015-01-17T18:23:02Z |
Import Type | One of:insert , update , delete |
insert |
Phone Number | plus symbol + followed by only numbers (5-20 characters), no formatting |
+4134567890 |
Postal Code | Only numbers and hyphens | 123-4567 , 3457 , 93012 |
Resource | One of:property , group , unit , utilisationPeriod |
group |
String | any UTF-8 string | This is OK , This 1 is also good. , これも大丈夫 |
UUID | [RFC 4122 version 4 (random) UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) | 71b63eef-3c50-4632-924c-b3c59f45c0ef , 71fc860f-7fa9-4012-a32e-88be33d607af , bf9d6003-19a2-4c3e-b68c-828c45d2cf10 |