Customers Bulk Import

Uploading customer data via bulk import in a CSV file

Method Description

🚧

The examples in the documentation include sample POST requests. Keep in mind that these are just examples — your Maestra integration won’t work properly if they’re used without adjusting them to your specific setup.
The exact methods needed for your use case are typically defined by your Maestra Forward Deployed Marketer in a technical specification. If you don’t have that document please reach out to them for clarification.

Invoked with a POST request. Request address and input fields can be set up via Maestra framework.

POST https://api.maestra.io/v3/operations/bulk?endpointId={API endpoint ID}&operation=DirectCrm.Customers.Import&csvCodePage=65001&csvColumnDelimiter=%3B&csvTextQualifier=%22&segment={Customer segment system name}&SourceActionTemplate={Customer Sign-Up Action}&transactionId={Idempotency key value in GUID format}

Authorization: SecretKey {authorization key}
Accept: application/json
Content-Type: text/csv;charset=utf-8

Request parameters

ParameterDescription
csvCodePageWindows code page identifier for the CSV file. Use 65001 (UTF-8) whenever possible.
csvColumnDelimiterCharacter used to separate columns in the CSV file.
csvTextQualifierOptional character added at the start and end of a column value, allowing it to contain characters that would otherwise be restricted.
endpointIdThe integration endpoint to pull settings from. Configured in your Maestra account.
segmentSystem name of the segment.
SourceActionTemplateThe customer registration action — for example, Website registration or In-store paper form. Configured in your Maestra account..
transactionIdIdempotency key that prevents duplicate request execution. Must be a GUID (v4 recommended). Repeated requests with the same key will return TransactionAlreadyProcessed.
📘

Limits & supported formats

  • Rate limit: No more than 60 imports per hour. Requests exceeding this limit will return 429 Too Many Requests until the count drops below 60.
  • Max file size: 200 MB. If you need to import more data, split it across multiple files.
  • gzip support: Supported. The server must return a Content-Encoding: gzip header, and the file must be attached in binary form (e.g., set to binary in Postman).

Field Descriptions

TitleDescription
WebsiteidCustomer website ID
FirstNameCustomer first name
LastNameCustomer last name
MiddleNameCustomer middle name
MobilePhoneMobile phone
EmailCustomer email
BirthDateDate of birth as yyyy-MM-dd
SourceDateTimeSign-up date and time as yyyy-MM-dd HH:mm:ss, project time
SourcePointOfContactSign-up point of contact, for example 'Site' or 'Boston Store'
IsSubscribedSubscription status, true or false
Optional Customer FieldOptional customer field value

For a full list of accepted fields, see here:
https://{your_project_name}.maestra.io/customers/import

Sample Request

POST https://api.maestra.io/v3/operations/bulk?endpointId=Maestra&operation=DirectCrm.Customers.Import&csvCodePage=65001&csvColumnDelimiter=%3B&csvTextQualifier=%22&SourceActionTemplate=CustomerCreatebyStaff&transactionId=f47ac10b-58cc-4372-a567-0e02b2c3d479

Authorization: SecretKey bWFuemFuuYTowcXY3ODMuzNjI2M3EzT0Y
Accept: application/json
Content-Type: text/csv;charset=utf-8


Email;balance;BirthDate;SourceDateTime;Region;SourcePointOfContact;LastName;FirstName;MiddleName;IsSubscribed
[email protected];433;12.04.1982;16.04.2016 21:00;711;727;Smith;Mary;Ann;1
[email protected];324;16.01.1980;16.04.2016 21:00;714;727;Smith;John;Michael;1