Skip to main content

Automated Coupon Mapping — Export Requirements

File format and update logic for feeding coupon-to-UTM mappings into Kickbite for automated coupon attribution.

Written by Juan Garzon

Automated Coupon Mapping — Export Requirements

This document describes the file format and update logic for feeding coupon-to-UTM mappings into Kickbite for automated coupon attribution. Kickbite uses this mapping to make a virtual touchpoint when users buy but do not click on ads.

General requirements

Destination

Google Cloud Storage bucket, Google Drive, BigQuery, or AWS S3 bucket. Other options can be discussed.

Format

CSV or JSON file.

File name

coupons_mapping

Update logic

The same file is maintained over time: add new coupons, remove inactive ones. Each day, Kickbite deletes all records in the database where record_type = automated and re-imports from the file.

Frequency

File should be refreshed before 2am website timezone whenever changes are made.

File fields

Each row in the file represents one active coupon mapping. Mandatory fields are marked with an asterisk (*).

Field

Example

Type

Description

coupon_code *

WELCOME10

string

Coupon code as used by the customer at checkout.

market *

DE

string

Market identifier. Country abbreviation or country name.

rule *

is

enum

Matching rule. Accepted values: is, contains, starts_with.

utm_campaign *

summer_sale_2026

string

UTM campaign value this coupon should be mapped to for attribution.

channel *

Influencers

string

Kickbite channel name. Must exactly match an existing channel definition in the account.

start_date

2026-01-01

date

First day the coupon is active (YYYY-MM-DD, website timezone). Leave empty for coupons with no start boundary.

end_date

2026-03-31

date

Last day the coupon is active (YYYY-MM-DD). Leave empty for open-ended coupons.

Notes

  • rule defines how Kickbite matches the coupon_code against the code on an order. Use is for exact match, contains when the code appears as a substring (e.g. an influencer suffix), and starts_with when all variants share a prefix.

  • channel must exactly match a channel name already defined in the Kickbite account settings. Unknown channel names will cause the row to be skipped.

  • Orders are only attributed to a coupon mapping if the order date falls between start_date and end_date (inclusive). If either date is empty, that side is treated as unbounded.

  • The file should always contain the full current list of active coupons. Kickbite does not track deltas — each day the file is re-imported in full, replacing all records where record_type = automated.

  • Mandatory fields: coupon_code, market, rule, utm_campaign, channel.

Did this answer your question?