Skip to content

Excel template columns

The file routes use one Excel workbook, written in plain English. This page describes it. For the rules of the daily upload, see Upload the daily file.

Sheet What it holds
Start here Six steps to fill the workbook, a colour key and the never-include list. It carries no data
Leads The lead events. One row for each event
Example Three filled rows to copy from: a new lead, an update and a withdrawal. All values are made up
Lists Every dropdown value, with its plain label next to its code
File info One set of values for the whole file

The dropdowns and highlights in the workbook help you fill it. They are not the final check. MarsX checks every row again when the file arrives, including real date parsing and the fields required for each action.

  • Row 1 shows a plain English title for each column, for people.
  • Row 2 shows the system name of each column in small grey type. MarsX reads row 2. Do not change rows 1 or 2.
  • Data starts in row 3.
  • The columns are grouped by colour, not in the order of the contract. The system names are the same as the field names of an automatic send event.

Colour key for the column titles:

Colour Meaning
Black Required for every new lead. A lead without them is set aside. Give either a mobile number or an email, and answer Yes to “Customer agreed to be contacted”
Dark grey Fill if you can. A blank is accepted, and MarsX marks the lead incomplete. The revision number and the time of the change are required on every row except a new lead
Light grey Optional details. Fill these if your system holds them
Flare red Privacy requests only. Fill these only on a Withdraw or Delete row

A pale red cell shows that a required cell is still empty. It is a prompt for you and not the final check.

Item System name What to enter
Template version template_version Do not change it. A file on another template version is rejected
Partner code partner_code The code MarsX gave you, in capital letters
File number file_sequence Six digits. Goes up by one with every file, for example 000123
Date and time of export exported_at When you produced the file, for example 2026-10-01T14:30:00+07:00
Number of lead rows row_count The number of filled rows on the Leads sheet. A wrong count rejects the file as incomplete

Formats and the rules for each action are in Lead fields.

Column Title in row 1 System name in row 2 Colour
1 Lead ID in your system partner_lead_id Required
2 Revision number source_revision Required on changes
3 What is this row? record_action Required
4 Enquiry date and time created_at Required
5 Date and time of this change updated_at Required on changes
6 Customer name customer_name Required
7 Mobile number (+62…) phone Required, with email
8 Email address email Required, with phone
9 How the lead reached you source_channel Required
10 Customer agreed to be contacted contact_consent Required
11 Consent date and time consent_time Required
12 Model of interest model_interest Fill if you can
13 City (Kota or Kabupaten) customer_city Fill if you can
14 Province customer_province Fill if you can
15 When they plan to buy purchase_timeframe Fill if you can
16 Test drive requested? test_drive_requested Fill if you can
17 Customer’s own request enquiry_notes Fill if you can
18 Preferred dealer preferred_dealer_code Fill if you can
19 Customer ID in your system partner_customer_id Fill if you can
20 Consent record number consent_reference Optional
21 Privacy notice version notice_version Optional
22 What the customer agreed to consent_purpose Optional
23 Campaign name campaign Optional
24 UTM source utm_source Optional
25 UTM medium utm_medium Optional
26 UTM campaign utm_campaign Optional
27 Ad click ID ad_click_id Optional
28 Ad ID ad_id Optional
29 Ad creative ID ad_creative_id Optional
30 Session ID session_id Optional
31 AI intent label ai_intent_label Optional
32 AI summary ai_summary Optional
33 Phone verified? phone_verified Optional
34 Type of privacy request request_type Privacy rows only
35 Privacy request date and time request_time Privacy rows only
36 Privacy request reference request_reference Privacy rows only

The columns are grouped by colour, and MarsX reads them by their system name in row 2, not by position. Columns 1 to 5 are the identity columns. A withdraw or delete row carries those five and the three privacy columns. contact_consent sits right before consent_time. phone_verified sits at the end of the optional block.

phone_verified tells MarsX whether the customer confirmed the phone number, for example by a one-time code from the ad platform. Choose Yes or No. Leave the cell blank if you do not know. In an automatic sending event the field is true or false, and you leave it out or send null when it is unknown.

An Excel dropdown stores the text the person chose. So the template shows a plain label for each code of the closed lists below. In a file, MarsX accepts either the label or the code, and it sets aside any row that holds other text. In an automatic send event, only the codes are valid, except that phone_verified is true or false. The field contact_consent has one value, yes. The fields model_interest and customer_province keep their official names and need no map.

Field Label shown in the dropdown, with its code
record_action New lead (new), Update to a lead (update), Withdraw (privacy request) (withdraw), Delete (privacy request) (delete)
purchase_timeframe This month (Bulan ini), Within the next month (1 bulan ke depan), Within the next 3 months (3 bulan ke depan), Not decided yet (Belum tahu)
test_drive_requested Yes (Y), No (N)
source_channel Meta lead form (meta_lead_form), TikTok lead form (tiktok_lead_form), Google lead form (google_lead_form), Other advertising lead form (other_ad_lead_form), AI or website chat (chat), Website form (website_form), Online marketplace (marketplace), Other source (other)
consent_purpose Sales follow-up (sales_follow_up), Marketing messages (marketing)
request_type Withdraw consent (withdraw_consent), Erase personal data (erasure), Restrict use of personal data (restriction)
phone_verified Yes (yes), No (no). A blank cell means unknown
contact_consent Yes (yes). A blank or any other value sets the row aside
model_interest Not specified (not_specified), besides the model names of your brand

The field preferred_dealer_code is a ninth dropdown. It lists the dealers that MarsX holds as active for your brand, one label for each dealer, for example Dealer A. Each label maps to a code such as D0001. The labels and codes are in the labels file under preferred_dealer_code, and the Lists sheet shows each label next to its code. The field is optional. A blank value sends the lead to a MarsX triage queue. In an automatic sending event, send the code. MarsX sets aside a code that is not on the list. The public copy of the workbook shows three placeholder dealers. Use the list MarsX keeps for your brand.

The model_interest list holds the models of your brand, and the option Not specified. The customer_province list holds the 38 provinces of Indonesia, spelled as in the workbook.

  1. Open the Leads sheet and look at the Example sheet first.
  2. Fill the white cells. Use the dropdown arrow wherever a cell has one. Start typing in row 3.
  3. Fill the File info sheet.
  4. Put one row for each lead event. Include only leads that changed since your previous file. A lead missing from a file means no change, never deletion.
  5. A new or update row carries the lead’s full current state. A blank cell means that field is empty.
  6. A withdraw or delete row carries only the first five columns and the three privacy columns. Leave every column between them empty.
  7. source_revision goes up with every change. Never reuse a number for different content. For a change, always send a higher revision number and the time of the change.
  8. A new lead needs the eight black cells: partner_lead_id, record_action, created_at, customer_name, a phone or an email, source_channel, contact_consent and consent_time. A lead without one of them is set aside with a reason.
  9. On a new lead only, a blank revision number means 1 and a blank time of the change means created_at.
  10. If the model or the city is missing, MarsX accepts the lead and marks it incomplete. A lead with no model, no city and no preferred dealer goes to a MarsX triage queue.
  11. Keep the file plain: no formulas, macros, merged cells or links. MarsX rejects the whole file if it finds any.
  12. Save as .xlsx, name it <partner_code>_<YYYY-MM-DD>_<file_sequence>.xlsx, and upload it through the signed upload or the upload by staff account. Never send it by email or WhatsApp.

The first picture is a new lead. The second is a withdrawal of the same lead. In the workbook, each field is one cell in the column of the same name.

A filled row for a new lead, explained. All values are fictional.

A. Identity and control

Lead ID in your systempartner_lead_id
SRC-TEST-0001
Your own ID for this lead. Letters, digits, full stops, underscores and hyphens, up to 64 characters. Never reused.
Customer ID in your systempartner_customer_id
SRC-CUST-TEST-0001
Optional. Your own ID for the person, if you keep one.
Revision numbersource_revision
1
A whole number that goes up with every change to this lead. The first version is 1. On a new lead you may leave it out, and MarsX uses 1.
What is this row?record_action
new
What this row is: new, update, withdraw or delete.
Enquiry date and timecreated_at
2026-10-01T09:15:00+07:00
When the customer made the enquiry. The +07:00 is the offset from UTC and is required.
Date and time of this changeupdated_at
2026-10-01T09:15:00+07:00
When this version was made. The same as created_at for a first version. On a new lead you may leave it out, and MarsX uses created_at.

B. Customer

Customer namecustomer_name
Contoh Pelanggan
The customer's name. Required.
Mobile number (+62...)phone
+6280000000001
Starts with +628. Give a phone number or an email address, or both. At least one is required.
Email addressemail
contoh.pelanggan@contoh.example
A normal email address.

C. Interest

Model of interestmodel_interest
Model A
A model from the Lists sheet of the template, or not_specified. Not required: a lead without a model is accepted and marked incomplete.
When they plan to buypurchase_timeframe
3 bulan ke depan
Optional. One of four fixed phrases: Bulan ini, 1 bulan ke depan, 3 bulan ke depan, Belum tahu.
Test drive requested?test_drive_requested
N
Optional. Y or N.
Customer's own requestenquiry_notes
Ingin meminta penawaran untuk Model A.
Optional. The customer's own request, up to 500 characters. No chat transcripts.

D. Location

Provincecustomer_province
Jawa Barat
Optional. A province from the Lists sheet.
City (Kota or Kabupaten)customer_city
Kota Bandung
Kota or Kabupaten. Not required: a lead without a city is accepted and marked incomplete.

E. Source

How the lead reached yousource_channel
chat
Where the enquiry came from. Required. One of eight values from the Lists sheet.
campaign, utm_source, utm_medium, utm_campaign
campaign-test, example, chat, campaign-test
Optional marketing labels.
Session IDsession_id
SESSION-TEST-0001
Optional. Your own session reference.

F. Consent

Customer agreed to be contactedcontact_consent
yes
The customer agreed to be contacted. Required. The only accepted value is yes.
Consent date and timeconsent_time
2026-10-01T09:14:40+07:00
When the customer agreed to be contacted. Required.
Consent record numberconsent_reference
CONSENT-TEST-0001
Optional. A reference to your record of the real consent. Not a yes or no.
Privacy notice versionnotice_version
NOTICE-TEST-1
Optional. Which privacy notice wording the customer saw.
What the customer agreed toconsent_purpose
sales_follow_up
Optional. What the customer agreed to. One value from the Lists sheet.

G. AI values

ai_intent_label, ai_summary
ingin_penawaran, Pelanggan meminta penawaran Model A.
Optional. Your own derived label and short summary. They never decide access or routing.

Blank in this row: phone_verified, preferred_dealer_code, ad_click_id, ad_id, ad_creative_id and section H (privacy request). A blank cell means the field is empty.

A filled row for a withdrawal, explained. All values are fictional.

A. Identity and control

Lead ID in your systempartner_lead_id
SRC-TEST-0001
The same lead as before.
Revision numbersource_revision
3
Still rises, but a withdrawal is applied even if it carries an older number than MarsX holds.
What is this row?record_action
withdraw
Or delete, for an erasure.
Enquiry date and timecreated_at
2026-10-01T09:15:00+07:00
Same as the first version.
Date and time of this changeupdated_at
2026-10-04T15:00:00+07:00
When this version was made.

H. Privacy request

Type of privacy requestrequest_type
withdraw_consent
withdraw_consent, restriction or erasure.
Privacy request date and timerequest_time
2026-10-04T14:59:30+07:00
When the customer made the request.
Privacy request referencerequest_reference
PRIV-TEST-0001
Your own reference for the request. Same character rules as the lead ID.

Leave every customer, interest, location, source, consent and AI column blank. A removal row carries identity and request fields only.