Event Schema
This is the schema of the FlareLane CRM events loaded via Exporting CRM Events (S3).
CRM event schema
Section titled “CRM event schema”| Column | Type | Category | Description |
|---|---|---|---|
| id | string | Common | Unique event identifier (ULID) |
| type | string | Common | Event type. e.g., push.sent |
| channel | string | Common | Channel discriminator. push / sms / kakaoalimtalk / kakaobrandmessage / email / iam |
| time | string | Common | Event occurrence time (RFC 3339, UTC) |
| deviceid | string | Common | FlareLane device identifier |
| userid | string | Common | FlareLane user identifier (null for unidentified users) |
| campaign_id | string | Shared | Campaign identifier |
| campaign_name | string | Shared | Campaign name |
| trigger_type | string | Shared | Send trigger. api / console / test / journey / recurring / system |
| journey_id | string | Shared | Automation identifier |
| journey_name | string | Shared | Automation name |
| journey_step_id | string | Shared | Automation action identifier |
| journey_enrollment_id | string | Shared | Automation run identifier |
| recurring_message_id | string | Shared | Recurring message identifier |
| sender | string | Shared | Sender. SMS=sender number, Email=sender email |
| recipient | string | Shared | Recipient. SMS/Kakao=recipient number, Email=recipient email |
| subject | string | Shared | Subject. push/sms/email=subject, AlimTalk=emphasized title, Brand Message=header |
| body | string | Shared | Body (original before interpolation). Not included for Email |
| template_id | string | Shared | Template identifier (push / kakaoalimtalk / email) |
| template_name | string | Shared | Template name (push / kakaoalimtalk / email) |
| provider | string | Shared | Push provider. fcm / apns / webpush (Push only) |
| provider_message_id | string | Shared | Provider-side message ID (Push only) |
| provider_error | string | Shared | Provider-side error message (Push only) |
| error | string | Shared | Error/failure reason (on failed, undelivered, aborted) |
| platform | string | Shared | Device platform. android / ios / webDesktop / webMobile |
| message_type | string | Shared | Message type. SMS=SMS/LMS/MMS, Kakao=message type |
| is_advertisement | boolean | Shared | Advertisement flag (SMS / Brand Message) |
| kakaoalimtalk_template_code | string | Channel-specific | Kakao-reviewed template code (AlimTalk only) |
| kakao_sender_key | string | Channel-specific | Kakao sender profile (channel) key (Brand Message only) |
| iam_group | string | Channel-specific | In-app group/category (InAppMessage only) |
| iam_clickable_id | string | Channel-specific | CTA button identifier (iam.clicked only) |
| iam_dont_show_minutes | int | Channel-specific | "Don't show again" value in minutes (iam.closed only). 0/null means a simple close, a positive value means hidden for N minutes |
| projectid | string | Partition | FlareLane project identifier |
| date | string | Partition | YYYY-MM-DD derived from time (UTC) |
Event types
Section titled “Event types”The channel value is one of push / sms / kakaoalimtalk / kakaobrandmessage / email / iam.
*.created: Send request created*.sent: Successfully accepted by the provider*.aborted: Not sent due to policy/condition reasons such as frequency capping, opt-out, or Liquid interruption. The reason is included inerror*.failed: Send failed due to a provider error*.delivered/*.undelivered: Delivery to the recipient device succeeded/failed
Push (channel=push)
Section titled “Push (channel=push)”| type | Description |
|---|---|
| push.created | Push send request created (before the PNS call) |
| push.sent | Push send succeeded (PNS responded normally) |
| push.aborted | Push send stopped (frequency cap/opt-out/Liquid, etc.) |
| push.failed | Push send failed (provider/technical error) |
| push.clicked | The user clicked the push notification |
SMS (channel=sms)
Section titled “SMS (channel=sms)”| type | Description |
|---|---|
| sms.created | SMS send request created (before the provider call) |
| sms.sent | Successfully accepted by the provider |
| sms.aborted | Send stopped (frequency cap/opt-out/Liquid, etc.) |
| sms.failed | Provider acceptance failed |
| sms.delivered | Delivered to the recipient device (based on the provider callback) |
| sms.undelivered | Delivery to the recipient device failed (based on the provider callback) |
Kakao AlimTalk (channel=kakaoalimtalk)
Section titled “Kakao AlimTalk (channel=kakaoalimtalk)”| type | Description |
|---|---|
| kakaoalimtalk.created | AlimTalk send request created (before the provider call) |
| kakaoalimtalk.sent | Successfully accepted by the provider |
| kakaoalimtalk.aborted | Send stopped (frequency cap/opt-out/Liquid, etc.) |
| kakaoalimtalk.failed | Provider acceptance failed |
| kakaoalimtalk.delivered | Delivered to the recipient device (based on the provider callback) |
| kakaoalimtalk.undelivered | Delivery to the recipient device failed (based on the provider callback) |
Kakao Brand Message (channel=kakaobrandmessage)
Section titled “Kakao Brand Message (channel=kakaobrandmessage)”| type | Description |
|---|---|
| kakaobrandmessage.created | Brand Message send request created (before the provider call) |
| kakaobrandmessage.sent | Successfully accepted by the provider |
| kakaobrandmessage.aborted | Send stopped (frequency cap/opt-out/Liquid, etc.) |
| kakaobrandmessage.failed | Provider acceptance failed |
| kakaobrandmessage.delivered | Delivered to the recipient device (based on the provider callback) |
| kakaobrandmessage.undelivered | Delivery to the recipient device failed (based on the provider callback) |
Email (channel=email)
Section titled “Email (channel=email)”| type | Description |
|---|---|
| email.created | Email send request created |
| email.sent | Accepted by the provider |
| email.delivered | Delivered to the recipient mail server |
| email.failed | Provider acceptance failed |
| email.aborted | Send stopped (frequency cap/opt-out/Liquid, etc.) |
| email.complaint | Spam report received |
| email.opened | The recipient opened the email |
| email.clicked | The recipient clicked a link in the email |
InAppMessage (channel=iam)
Section titled “InAppMessage (channel=iam)”| type | Description |
|---|---|
| iam.created | In-app message display request created (server side) |
| iam.displayed | The in-app message was displayed on the user's device (SDK event) |
| iam.clicked | The user clicked the in-app CTA button (SDK event) |
| iam.closed | The user closed the in-app message (SDK event) |
Column usage by channel
Section titled “Column usage by channel”The columns each channel populates and their meaning. Any column not in the table is always null for that channel.
| Column | Required | Description |
|---|---|---|
| campaign_id | required | Campaign identifier |
| campaign_name | optional | Campaign name |
| template_id | optional | Template identifier |
| template_name | optional | Template name |
| subject | optional | Push subject (original before interpolation) |
| body | optional | Push body (original before interpolation) |
| trigger_type | optional | api / console / test / journey, etc. |
| journey_* | optional | Automation context |
| recurring_message_id | optional | Recurring message identifier |
| platform | required | Device platform |
| provider | optional | Push provider (fcm / apns / webpush) |
| provider_message_id | optional | Provider-side message ID |
| provider_error | optional | Provider-side error message |
| error | optional | Error/failure reason |
| Column | Required | Description |
|---|---|---|
| campaign_id | required | Campaign identifier |
| campaign_name | optional | Campaign name |
| message_type | required | Message type. SMS / LMS / MMS |
| subject | optional | LMS/MMS subject |
| body | required | Body (original before interpolation) |
| sender | required | Sender number |
| recipient | optional | Recipient number |
| is_advertisement | required | Advertisement flag |
| trigger_type | optional | Send trigger |
| journey_* | optional | Automation context |
| recurring_message_id | optional | Recurring message identifier |
| platform | optional | Device/send platform |
| error | optional | Error/failure reason |
Kakao AlimTalk
Section titled “Kakao AlimTalk”| Column | Required | Description |
|---|---|---|
| campaign_id | required | Campaign identifier |
| campaign_name | optional | Campaign name |
| template_id | required | FlareLane internal template identifier |
| kakaoalimtalk_template_code | required | Kakao-reviewed template code |
| template_name | optional | Template name |
| subject | optional | Emphasized title |
| body | required | Body (original before interpolation) |
| recipient | required | Recipient number |
| message_type | required | Message type |
| trigger_type | optional | Send trigger |
| journey_* | optional | Automation context |
| recurring_message_id | optional | Recurring message identifier |
| platform | optional | Device/send platform |
| error | optional | Error/failure reason |
Kakao Brand Message
Section titled “Kakao Brand Message”| Column | Required | Description |
|---|---|---|
| campaign_id | required | Campaign identifier |
| campaign_name | optional | Campaign name |
| kakao_sender_key | optional | Kakao sender profile (channel) key |
| body | required | Body (original before interpolation) |
| subject | optional | Message header |
| recipient | required | Recipient number |
| message_type | required | Message type |
| is_advertisement | optional | Advertisement flag |
| trigger_type | optional | Send trigger |
| journey_* | optional | Automation context |
| recurring_message_id | optional | Recurring message identifier |
| platform | optional | Device/send platform |
| error | optional | Error/failure reason |
| Column | Required | Description |
|---|---|---|
| campaign_id | required | Campaign identifier |
| campaign_name | optional | Campaign name |
| template_id | required | Template identifier |
| template_name | optional | Template name |
| subject | optional | Email subject |
| sender | required | Sender email address |
| recipient | optional | Recipient email address |
| trigger_type | optional | Send trigger |
| journey_* | optional | Automation context |
| recurring_message_id | optional | Recurring message identifier |
| platform | optional | Device/send platform |
| error | optional | Error/failure reason |
InAppMessage
Section titled “InAppMessage”| Column | Required | Description |
|---|---|---|
| campaign_id | required | Campaign identifier |
| campaign_name | optional | Campaign name |
| iam_group | required | In-app group/category |
| trigger_type | optional | console / journey (in-app uses only these two) |
| journey_* | optional | Automation context |
| platform | optional | Device platform. Populated only for SDK events (null for iam.created) |
| iam_clickable_id | optional | CTA button identifier. iam.clicked only |
| iam_dont_show_minutes | optional | "Don't show again" value in minutes. iam.closed only. 0/null means a simple close, a positive value means hidden for N minutes |
Customer events
Section titled “Customer events”Customer events (custom tracking events) have a schemaless data attribute and are loaded through a pipeline separate from crm_events.
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | required | Unique event identifier (ULID) |
| type | string | required | Event type |
| time | string | required | Event occurrence time (RFC 3339, UTC) |
| projectid | string | required | FlareLane project identifier |
| userid | string | optional | FlareLane user identifier (null for unidentified users) |
| deviceid | string | optional | FlareLane device identifier |
| data | string | optional | The custom attribute object passed along when the event was published. A schemaless value with freely defined keys, values, and types, serialized (stringify) and stored as a single string column. |
| platform | string | optional | Device platform. android / ios / webDesktop / webMobile |