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.
Download
Section titled “Download”- Excel template, version 1.2
- Dropdown label map, version 1.2 (a small JSON file that maps each dropdown label to its code, for systems that build the file)
The five sheets
Section titled “The five sheets”| 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.
How the Leads sheet is laid out
Section titled “How the Leads sheet is laid out”- 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.
File info
Section titled “File info”| 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 |
The 36 columns
Section titled “The 36 columns”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.
Dropdown labels
Section titled “Dropdown labels”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.
Rules for filling it
Section titled “Rules for filling it”- Open the
Leadssheet and look at theExamplesheet first. - Fill the white cells. Use the dropdown arrow wherever a cell has one. Start typing in row 3.
- Fill the
File infosheet. - 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.
- A new or update row carries the lead’s full current state. A blank cell means that field is empty.
- A withdraw or delete row carries only the first five columns and the three privacy columns. Leave every column between them empty.
source_revisiongoes 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.- 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_consentandconsent_time. A lead without one of them is set aside with a reason. - On a new lead only, a blank revision number means 1 and a blank time of the change means
created_at. - 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.
- Keep the file plain: no formulas, macros, merged cells or links. MarsX rejects the whole file if it finds any.
- 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.
A filled row, explained
Section titled “A filled row, explained”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. Identity and control
- Lead ID in your system
partner_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 system
partner_customer_id SRC-CUST-TEST-0001- Optional. Your own ID for the person, if you keep one.
- Revision number
source_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 time
created_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 change
updated_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 name
customer_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 address
email contoh.pelanggan@contoh.example- A normal email address.
C. Interest
- Model of interest
model_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 buy
purchase_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 request
enquiry_notes Ingin meminta penawaran untuk Model A.- Optional. The customer's own request, up to 500 characters. No chat transcripts.
D. Location
- Province
customer_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 you
source_channel chat- Where the enquiry came from. Required. One of eight values from the Lists sheet.
campaign, utm_source, utm_medium, utm_campaigncampaign-test, example, chat, campaign-test- Optional marketing labels.
- Session ID
session_id SESSION-TEST-0001- Optional. Your own session reference.
F. Consent
- Customer agreed to be contacted
contact_consent yes- The customer agreed to be contacted. Required. The only accepted value is yes.
- Consent date and time
consent_time 2026-10-01T09:14:40+07:00- When the customer agreed to be contacted. Required.
- Consent record number
consent_reference CONSENT-TEST-0001- Optional. A reference to your record of the real consent. Not a yes or no.
- Privacy notice version
notice_version NOTICE-TEST-1- Optional. Which privacy notice wording the customer saw.
- What the customer agreed to
consent_purpose sales_follow_up- Optional. What the customer agreed to. One value from the Lists sheet.
G. AI values
ai_intent_label, ai_summaryingin_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. Identity and control
- Lead ID in your system
partner_lead_id SRC-TEST-0001- The same lead as before.
- Revision number
source_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 time
created_at 2026-10-01T09:15:00+07:00- Same as the first version.
- Date and time of this change
updated_at 2026-10-04T15:00:00+07:00- When this version was made.
H. Privacy request
- Type of privacy request
request_type withdraw_consent- withdraw_consent, restriction or erasure.
- Privacy request date and time
request_time 2026-10-04T14:59:30+07:00- When the customer made the request.
- Privacy request reference
request_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.
