Customer Journey (Journey) is MAAC's automated marketing flow design tool. It enables brands to design multi-stage, personalized communication flows based on contact behavior and conditions to improve engagement and conversions.
It supports cross-channel node delivery (such as LINE, SMS, Email, and WhatsApp), tag add / remove, Reachability branching, and behavior tracking.
Common use cases include:
- New customer welcome journeys
- Real-time reactions to events such as blocking or adding a friend
- High-value audience tag maintenance and behavior management
With the visual editor, you can freely connect the following node types:
- Set trigger conditions such as add friend, block, page view, Email open, Email click, Email unsubscribe, and channel events
- Send messages through LINE, SMS, Email, and WhatsApp, add delays, and branch by behavior
- Add / remove tags, control sending frequency, and define nighttime delivery restrictions
- Track node interactions and conversion performance, including open rate, click rate, and revenue
For more scenario examples, please refer to 👉 Use Cases | Journey Feature Application Guide
# Setup Guide
1. Create a Journey
- Go to the "Customer Journey" page and click [Create New Journey].
- Enter the journey name.
- Choose whether to enable a schedule (for example, run daily at 9:00 AM).
- Set how many times each contact can enter the journey (unlimited by default).
- Set the "Message Send Limit" (for example, up to 1 SMS per contact).
- Set "Sleep Mode" (for example, do not send between 00:00 and 08:00).
⚠️ Important Notes for Message Send Limit Settings
To avoid conflicts in system behavior, the following rules apply when you adjust message send limits:
- Adjustment rule
- Once "Message Send Limit" is enabled, the setting can only be adjusted upward. It cannot be reduced or reset to a stricter limit.
- Allowed adjustments
- Message cap → Message cap (increase the number): You can increase the original limit to a higher value.
- Message cap → No message cap: You can change a previously limited channel to "No message cap."
- Not allowed
- No message cap → Message cap: If the original setting is "No message cap," it cannot be changed back to a capped setting.
- Message cap → Message cap (decrease the number): If a message cap has already been set, you can only increase the number, not lower it.
If you need to reset the configuration, please use the [Duplicate Journey] feature.
📌 Note: True Contact Definition
Contacts from different channel accounts are matched by a Unify Key (such as a phone number or Email address)
and merged into the same identity-unified contact, called a True Contact.
2. Set Trigger Conditions
Each journey can have only one trigger source, including:
Action-Based: triggered when a user performs an action or when an attribute changes
- Website event (requires SDK or GA4): page view, add to cart, purchase, and the corresponding GA event versions (GA event - page view / add to cart / purchase)
-
Channel event: contact interactions or subscription behavior on each channel
- LINE: open LINE message, add LINE Official Account, block LINE Official Account, LINE Contact Message
- WhatsApp: WhatsApp Contact Message, Subscribe to WhatsApp Official Account
- Email: Email open, Email click, Email unsubscribe
- Attribute change: tag additions and contact attribute changes (Custom Fields / Customer ID)
Channel Event — Details:
LINE Contact Message / WhatsApp Contact Message
When a contact proactively sends a message to your brand's official account on LINE or WhatsApp, the system triggers the corresponding journey. "LINE Contact Message" and "WhatsApp Contact Message" are two independent trigger nodes; configure each one based on the channel you want to listen to.
-
Use the "When a contact replies" dropdown to switch the trigger scope:
- First Message: triggers the journey only the first time the contact sends a message
- Any Message: triggers the journey every time the contact sends a message
- "First Message" detection logic: based on whether the contact's
last_message_timefield is empty (IS NULL) - When a LINE contact unfollows or a WhatsApp contact opts out, the system clears the
last_message_timefield, so the next message that contact sends qualifies as a "First Message" trigger again - Each journey can select only 1 LINE or WhatsApp channel as the trigger source
- Whether or not the contact's message hits an auto-reply keyword, it still counts toward the trigger condition (auto-reply and journey triggers are independent mechanisms)
👉 For the definition of last_message_time and when it is written or cleared, see:Feature Description | Contact Field Definitions and Matching Logic
Subscribe to WhatsApp Official Account (Opt-in)
When a contact sends an opt-in keyword to subscribe to your WhatsApp Official Account, the system automatically triggers the corresponding journey.
- Opt-in keyword:
/startin each language, configured centrally in Admin Center; brands cannot override it inside individual journeys - Each journey can select up to 5 WhatsApp Official Accounts
- This trigger is independent of the auto-reply mechanism; the two do not affect each other
👉 For details, please refer to:Tutorial | WhatsApp Opt-in and Opt-out Mechanism
Scheduled: trigger contacts at a predefined time
-
Attribute Changes: Dynamic Date
The system supports Scheduled triggers for Date and DateTime-type Custom Fields. In this mode, the system scans all contacts daily at your specified Scheduled Time and automatically enters matching contacts into the journey. When using a DateTime field, the system automatically uses only the date portion for matching; the time portion does not affect the trigger.
📌 Default limitations:
Same tag trigger: each True Contact can be triggered at most once per hour
GA event trigger: once per day only
3. Design Journey Nodes
Each node supports the following actions:
- Send Message: LINE, SMS, Email, WhatsApp
- Add / Remove Tags
- Set Branch Conditions: branch by tags, website events (including GA and SDK web events), Reachability, Channel Reach, and Custom Fields (text / number / date)
- Update Attribute: update or clear contact Custom Field values
- Delay: time control by minute / hour / day / week
- Wait Until: wait for the contact to interact with a specific message in the same journey before continuing the flow
Action Nodes
Send WhatsApp Message Node
In the journey canvas, you can add a WhatsApp send node by selecting [Send WhatsApp Message] under the "Message" category in the node menu. The editor uses the same WhatsApp message editor as WhatsApp Broadcast. When sending, you must select a WhatsApp message template that has been approved by Meta (status = APPROVED) and fill in any required template variables.
👉 For how to create and submit WhatsApp message templates for review, see:Tutorial | How to Create and Submit a WhatsApp Message Template for Review
📌 Email node note: To send Email in a journey, you must first complete Email channel activation and create a valid Sender Profile. In addition, every Email must include an Unsubscribe Link before it can be saved.
👉 For details about the Email node and editor operations, please refer to:Feature Guide | Email Omnichannel Journeys & Editor Tutorial
📌 Before using SMS, please note:
The SMS feature must be activated by Crescendo Lab in advance, and your MAAC account must have sufficient point balance to send SMS successfully. If activation is incomplete or your balance is insufficient, sending will fail.
👉 For more details, please refer to: Feature Description | MAAC Point Deduction and Recharge Mechanism
📌 Before using WhatsApp, please note:
WhatsApp messages are billed under Meta's Conversation-based Pricing model, which charges each time a conversation window is opened. Rates vary by message category (marketing, service, authentication, and so on) and by the contact's country or region. Please make sure your brand account has completed WhatsApp Business API setup and has sufficient balance.
📌 Customer Journey node limitations: Each journey supports up to 50 nodes (including exit nodes). Each action can add or remove up to 5 tags at a time, and execution order is not guaranteed.
Split Nodes
Channel Reach Node
"Channel Reach" determines whether a contact can be reached on a specified channel and routes them to the "Reachable" or "Unreachable" path.
WhatsApp Channel Reach evaluation rules:
| Contact Status | Reachable |
|---|---|
| Opt-in (Subscribed) | ✅ Reachable |
| Not Subscribed | ❌ Unreachable |
| Opt-out (Unsubscribed) | ❌ Unreachable |
| No WhatsApp channel entity | ❌ Unreachable |
Check Condition: Channel Interaction Events
"Check Condition" can verify whether a contact has interacted with brand messages within a specified time window in the past.
- Supported channels and behaviors: SMS click; LINE / Email / WhatsApp open and click; LINE / WhatsApp reply
- Time range: channel interaction events support minutes, hours, and days, with a maximum lookback of 30 days
- ⚠️ Note: This expansion only applies to channel interaction events. GA / SDK website events (such as page view and add to cart) still use "day" as the smallest unit due to event delivery latency
Condition Check: SDK Web Event Settings 🆕
SDK web events (page view, add to cart, purchase) support multiple settings in filters and condition checks, allowing you to more precisely target high-intent traffic rather than relying solely on a single event trigger.
Configurable conditions:
| Setting | Description |
|---|---|
| Website Channel | Select any website channel or a specific website channel |
| Page Scope | Select any page or a specific page |
| Visit Count | Set the minimum number of visits required |
| Dwell Time per Visit | Set the minimum seconds per visit |
| Tracking Time Window | Set the lookback period in days — only events within the past N days are counted (maximum 30 days). "Days" are calculated as calendar days, not 24-hour intervals |
| Track Purchase Behavior | Set the lookback period in days to check whether the contact has added specific products to the cart or completed a purchase |
• The advanced conditions for SDK page view (visit count / dwell time per visit / tracking time window) apply only to filters and condition checks, not to trigger nodes. Trigger nodes remain instant triggers and do not support time window settings
Wait Nodes
Wait Until Node
The "Wait Until" node lets you set a wait point in the journey that holds the contact until they interact with a specific message in the same journey, then routes them to the "Yes" or "No" path based on the result. The system uses real-time monitoring: as soon as the event arrives within the wait window, the contact immediately enters the "Yes" path without waiting out the full duration.
How to set up:
- Add a [Wait Until] node to the journey canvas (under the "Wait" category).
- From the dropdown, select one message node in the same journey as the tracking target. The dropdown only lists message nodes that are reachable from the current path on the canvas. Each Wait Until node can listen to 1 message only.
- Choose the interaction type to detect (the available options match the channel of the selected message node).
- Set the maximum wait time (choose from minutes, hours, or days; up to 30 days).
Supported interaction events by channel:
| Channel | Replied | Opened / Read | Clicked |
|---|---|---|---|
| LINE | ✅ | ✅ Opened | ✅ |
| — | ✅ Opened | ✅ | |
| SMS | — | ❌ (not supported) | ✅ (requires the built-in short URL service) |
| ✅ | ✅ Read | ✅ (URL clicks inside the template message) |
Path branching:
- Yes path: if the specified interaction is detected within the wait window, the contact immediately enters this path (no need to wait the full duration).
- No path: if the wait window expires without any qualifying interaction, the contact enters this path.
• Upstream node deletion detection: If the message node selected by a Wait Until node is deleted, the Wait Until node automatically goes into Error state and is blocked at publish time. You must reselect a tracking target.
• Upstream channel change: If the upstream message node changes channel (for example, from Email to SMS) and the previously selected interaction event is no longer supported, the system prompts you to reconfigure the node at publish time.
• SMS click tracking prerequisite: If you select an SMS node as the tracking target, click events can only be captured through the built-in short URL service. Make sure the message uses a MAAC short URL.
• Publish lock: After a journey is published, all key settings of the Wait Until node (target message, interaction type, and wait time) are locked and cannot be edited to ensure data consistency. To make changes, create a new version.
4. Publish and Activate
After the design is complete, click [Publish] to activate the journey automatically. You can review its operation through "Journey Overview" and the "Node Performance Report."
📌 Additional note for SMS delivery:
If an SMS node in the journey fails to send, you can download the failed delivery list from that journey's settings page. Records from the past two months are available for review.
For common SMS sending failures, please refer to 👉 FAQ | SMS Sending Rules and Common Errors
# Custom Field Triggers and Applications
Custom Fields play a core data-driven role in Customer Journey. With the following capabilities, the system can turn static CRM attributes into real-time marketing interactions.
📕 Please read first:Tutorial | MAAC × CAAC Cross-Product Custom Field Setup (Learn how to create Custom Fields in Admin Center)
1. Action-Based: Attribute Update Trigger
When a customer's Custom Field changes, the system can detect the update in real time and launch the corresponding journey.
Setup steps:
-
Select "Contact Attribute Change" as the trigger type at the journey entry point.
-
Choose the trigger condition:
- Any attribute value: The journey is triggered immediately whenever the field changes in any way (for example, when a customer's "Membership Tier" changes in any direction).
-
Specific attribute value: The journey is triggered only when the updated field value matches your specified condition (for example, if you set "Purchase Count greater than 5," the journey starts only when the updated count reaches that threshold).
-
Set the specific evaluation condition: If you selected "Specific attribute value," please define the threshold condition and save the node.
(For example, if your membership program has 5 levels, you can require "Membership Tier" to be "greater than or equal to 3" before the journey officially starts.) -
Additional setting for date fields: If you select a Date-type field, some logic options provide the checkbox [Ignore Year (Month/Day Only)]. When selected, the system ignores the year and compares only the month and day.
- Advanced audience filtering (optional): To make marketing communication more precise, you can stack additional "Filter" conditions on top of the trigger. For example, when a change in "Membership Tier" triggers the journey, you can also filter for customers who made a purchase after 2022.
📕 Further reading:Custom Field Types and Suggested Use Cases
💡 You can also use the condition where Customer ID changes from empty to [Has value] as the trigger starting point. This can accurately capture the moment a customer completes LINE account binding, making it ideal for launching a new-member welcome journey.
2. Scheduled
In addition to real-time "Action-Based" triggers, the system also supports Scheduled mode for Date and DateTime-type Custom Fields. In this mode, the system scans all contacts daily at your specified Scheduled Time and automatically enters matching contacts into the journey. When using a DateTime field, the system automatically uses only the date portion for matching; the time portion does not affect the trigger.
Scheduled triggers support Date and DateTime-type Custom Fields. They do not support Text or Number fields. When using a DateTime field, the system automatically uses only the date portion for matching; the time portion does not affect the trigger. The scan time is based on your configured organization timezone. Contacts with no field value (empty) will not be triggered.
Two Scheduled Trigger Modes
| Mode | Matching Logic | Use Case | Example |
|---|---|---|---|
| On Specific Date | Matches the full date YYYY-MM-DD. It can be combined with logic options such as [Today / Specific Date], [Exactly ... days/weeks before], and [Exactly ... days/weeks from today], and supports both fixed dates and relative day settings. | One-time scenarios with a clear due date | Reminder 7 days before contract expiration; reminder one day before an appointment |
| On Anniversary | By enabling [Ignore Year (Month/Day Only)], the system automatically ignores the year and compares only the month and day (MM-DD), making it suitable for yearly recurring triggers. | Recurring annual events | Birthday greetings, membership anniversaries, wedding anniversaries |
Setup Steps
- At the journey entry point, choose "Dynamic Date" > then select a Date or DateTime-type Custom Field (for example, Birthday, Contract End Date, or Next Appointment Time).
-
Choose the trigger condition:
- On Specific Date: Choose the logic option (for example, [Today / Specific Date], [Exactly ... days/weeks before], or [Exactly ... days/weeks from today]) and define either a fixed date or a relative date condition (YYYY-MM-DD).
- On Anniversary: After checking [Ignore Year (Month/Day Only)], the system automatically ignores the year and compares only the month and day (MM-DD). This is ideal when you want to keep date-based logic control without comparing the year.
- Set the Scheduled Time: specify the daily scan time (for example, 09:00 AM). The system runs according to the organization timezone.
- (Optional) Set advanced audience filters.
- Save the trigger node, then continue designing the remaining journey actions.
Scenario Examples
Scenario 1: Automatically send yearly anniversary greetings
- Select a Date-type (DATE) Custom Field such as "Wedding Anniversary."
- Use the logic option [is] and check [Ignore Year (Month/Day Only)].
- Scheduled Time: 09:00 AM (based on the organization timezone)
- At 09:00 every day, the system scans contacts whose MM-DD matches today → enters them into the journey → and automatically sends an anniversary greeting message.
Scenario 2: Reminder 7 days before contract expiration (On Specific Date)
- Select the Date-type Custom Field "Contract End Date."
- Logic option: [Exactly ... days/weeks from today], with the relative date set to 7 days; Scheduled Time: 10:00 AM
- At 10:00 every day, the system scans contacts whose contract end date falls within the next 7 days → enters them into the journey → and automatically sends a renewal reminder.
Scenario 3: Reminder one day before an appointment (On Specific Date)
- Select the Date-type Custom Field "Appointment Date."
- Logic option: [Exactly ... days/weeks before], with the relative date set to 1 day; Scheduled Time: 18:00 PM
- At 18:00 every day, the system scans contacts whose appointment date falls within the next day → enters them into the journey → and automatically sends a reminder message with location details.
3. Journey Branch: Route with Custom Fields
Within a journey, you can use "Custom Fields" as branch conditions so customers in different states can follow dedicated communication paths. Based on the data type, the system automatically provides the most suitable logic options:
- Text: You can set conditions such as "equals" and "contains." For example, check whether "Membership Tier" equals "Level3" and send an exclusive coupon if it does.
- Number: You can set conditions such as "greater than," "less than," and "between." For example, if "Reward Points" is greater than 1000, the system can automatically send a premium redemption coupon.
- Date Range (Date / DateTime): You can set conditions such as "before a specific date" or "after a specific date." For example, check whether "Point Expiration Date" is before today and send an upcoming-expiration reminder in time.
4. Update Attribute: Automatically Update / Clear Custom Fields Through a Journey
A journey can not only read field data, but also automatically update Custom Fields based on customer interactions.
Setup steps:
-
Add an "Update Attribute" action node to the journey canvas.
- Select the target Custom Field: Choose the customer attribute you want to modify (for example, Last Purchase Time).
-
Select the action you want to perform:
-
Update: Directly assign a new value to the field (for example, when a customer completes an order on your website, the Last Purchase Time is automatically updated to
Current Time). -
Clear: Reset the current field value to empty (Set to Null) to clear the status before the next marketing campaign.
-
Update: Directly assign a new value to the field (for example, when a customer completes an order on your website, the Last Purchase Time is automatically updated to
💡 After the journey is triggered, the Custom Fields of qualified contacts are automatically updated (such as purchase time or membership tier) and synchronized to CDH.
5. Impact of Archived Fields on Journeys
If you archive a Custom Field in Admin Center, the system stops reading that field. The impact on journey nodes is as follows:
Impact on Journey Trigger:
- System status: The journey itself remains "Active," but a red warning icon appears on the corresponding node in both the journey list and the canvas.
- Actual impact: The trigger node stops working, and no new contacts will enter the journey because of changes to that field.
- How to recover: Return to "Archived Fields" in Admin Center and click "Restore." The trigger resumes normal operation immediately, and you do not need to manually reopen the journey.
Impact on Journey Branch:
- System status: The journey remains "Active," but the branch node shows a red warning icon.
- Actual impact: If the trigger entry is valid, the journey continues to run. However, when a contact reaches a branch that uses an archived field as the condition, the system evaluates it as "empty" or "not matched," and the contact is always routed to the "No" path.
Impact on Update Attribute (Action Node):
- Actual impact: The system rejects all writes to an archived field, so the field value does not change.
- How to recover: You must first unarchive the field. Then the contact must be triggered again and pass through the node again before the update can be executed successfully.
# Metrics Definitions and Reporting
Performance Metric Definitions by Channel
| Metric Name | Calculation | Description |
|---|---|---|
| Messages Sent | Total number of messages sent | All successfully sent messages (including LINE, SMS, Email, and WhatsApp) |
| Open Rate |
LINE / Email: unique opens / sent volume WhatsApp: unique reads / Delivered count |
LINE, Email, and WhatsApp support open / read data; SMS does not. The denominator for the WhatsApp read rate is the "Delivered count," not the sent count. |
| Click-Through Rate (CTR) |
LINE / Email: repeated clicks / opens SMS: repeated clicks / sent volume WhatsApp: repeated clicks / read count |
Calculated by platform; overall CTR can also be displayed |
|
Unique CTR (Unique CTR) |
LINE / Email: unique clicks / opens SMS: unique clicks / sent volume WhatsApp: unique clicks / read count |
Requires GA4 + UTM |
| Add to Cart | GA4 add_to_cart event count |
Requires GA4 integration |
| Orders | GA4 purchase event count |
Requires GA4 integration |
| Revenue | GA4 revenue value | Requires GA4 integration |
Channel Metric Differences
| Metric | LINE | SMS | ||
|---|---|---|---|---|
| Open / Read Rate Denominator | Sent count | Sent count | N/A (not supported) | Delivered count |
| CTR Denominator | Open count | Open count | Sent count | Read count |
| Read Receipt Limitations | No restrictions | Depends on the email client | N/A | Users can disable read receipts, which may lower the reported read rate |
📌 Additional Email channel metrics: In addition to existing metrics such as messages sent, clicks, and revenue, Email nodes also provide Bounce Count / Bounce Rate, Spam Complaint Count / Complaint Rate, Unsubscribe Count / Unsubscribe Rate, and Failed Delivery Count to help you monitor sending quality and list health.
Node Performance Report Metric Definitions
Updated once per hour. Report download is currently not supported.
Branch and Wait Until Node Metrics:
- Branch nodes (Check Condition, Channel Reach) and Wait Until nodes: each node displays Traffic Counts and Unique Contacts (counts only, no percentages).
- Data is updated in hourly batches, matching the refresh frequency of other canvas metrics.
- Branch processing latency (from event arrival to the contact moving to the next node) is ≤ 30 seconds. This is a separate metric from the canvas display latency (hourly).
Metric Name |
Description |
Notes |
|---|---|---|
| Message Name | The node name configured in the journey settings | |
| Sent Count | Total number of successfully sent messages from that node | |
| Open Count |
LINE and Email support open-count calculation SMS displays as N/A WhatsApp supports read-count calculation (subject to read-receipt settings) |
Open Count is calculated as daily unique opens Example: If Amy opens the message twice on 1/1 and once on 1/2, the Node Performance Report counts it as 2 opens. For LINE message modules that support open tracking, please refer to: Feature Introduction | LINE Message Modules and Template Library |
| Open Rate |
LINE / Email: unique opens / sent count WhatsApp: unique reads / Delivered count |
|
| Click Count | Repeated clicks generated through MAAC short URLs | |
| Click-Through Rate (CTR) |
LINE / Email: repeated clicks / opens SMS: repeated clicks / sent count WhatsApp: repeated clicks / read count |
|
| Unique Click Count | Unique clicks calculated through GA4 + UTM | |
| Unique Click Rate |
LINE / Email: unique clicks / opens SMS: unique clicks / sent count WhatsApp: unique clicks / read count |
|
| SMS Units | Billing units calculated by character length (SMS only) | |
| Add to Cart | GA4 add_to_cart attributed to the node |
|
| Orders | GA4 purchase attributed to the node |
|
| Revenue | Total GA4 revenue attributed to the node |
📌 Additional note for Email node performance: If an Email node shows Failed Delivery Count, the node provides an entry point to download the failure report so you can review the exact reason (such as insufficient balance or system blocking).
💡 Want AI-powered diagnostic analysis of your journey's overall performance? AI Journey Insight (Beta) automatically diagnoses funnel drop-offs, identifies node anomalies, and delivers prioritized, actionable recommendations.
👉 Feature Description | AI Journey Insight
# FAQ
Triggers and Activation
Feature Availability and Usage Limits
Q: Do I need to enable the Node Performance Report feature?
A: Only Customer Journeys created after 2025/08/11 support node-level reporting.Q: How many journeys can each account create?
A: Up to 350. The actual limit depends on your contract plan.Q: Can I configure multiple trigger conditions?
A: No. Each journey supports only one trigger source. We recommend splitting them into multiple journeys or using branch conditions for routing.-
Q: What limitations apply when using GA or SDK as the trigger condition?
Web SDK behavior triggers: Each True Contact can trigger a journey at most once per hour Supports real-time triggering and is suitable for shopping or interaction behavior Users from LINE and SMS can be identified as long as the website embeds the SDK and includes identification fields GA behavior triggers: Only supported for contacts who entered the website from LINE clicks Triggering has a delay (approximately 24-48 hours) Each True Contact can trigger a journey at most once per day Q: Why can't I save Email content in the journey?
A: This is usually because the content is missing an Unsubscribe Link. To protect sending reputation and comply with international anti-spam regulations, MAAC requires every marketing Email to include an unsubscribe mechanism.Q: Why can't I select "Email Unsubscribe," "Email Open," or "Email Click" when setting a trigger condition?
A: This is usually because your Email channel has not been fully activated or you have not created a valid Sender Profile yet. Among them, "Email Unsubscribe" depends on your brand domain configuration, while "Email Open" and "Email Click" depend on a sender profile that supports event listening.Q: Does the system limit message sending frequency or volume?
A: The system does not impose an overall cross-channel sending cap on the journey itself, but you can configure per-channel send limits or required sending conditions for each platform, such as LINE, SMS, Email, and WhatsApp.
Contacts and Frequency Limits
-
Q: Can the same user trigger the journey repeatedly from different channels?
A: By default, the system allows each True Contact to trigger a journey only once per hour (or once per day if GA is the trigger event). Even if multiple behavior events occur at the same time, the journey is triggered only once.
If your brand also configures an entry limit for the journey (for example, at most once per day), the system enforces that additional restriction as well. -
Q: What is a True Contact?
A: It refers to a contact that has completed Profile Unification. For example, a user's LINE account and phone number can be matched and unified as the same person. Journey trigger frequency is controlled at the True Contact level. -
Q: If the same tag is applied to multiple channel contacts, will it sync?
A: Yes. The system synchronizes tags in real time to all channel contacts under that True Contact (such as LINE and SMS). On the contact page, the source is shown as "MAAC Tag." -
Q: If one LINE account is bound to multiple phone numbers, which one will the system use?
A: The system prioritizes the contact record with the most recent activity for tag application and message sending.
Nodes and Sending
Sending and Node Control
-
Q: What is the maximum number of journey nodes I can configure?
A: Up to 50 nodes (including exit nodes). -
Q: What happens if my SMS balance is insufficient?
A: The node stops executing, and downstream nodes will not be triggered. The system shows a warning icon in the journey and sends a notification email to the MAAC administrator mailbox. -
Q: How do I set the sending priority across channels?
A: You can use a "Reachability" branch node to design channel fallback logic and ensure delivery while controlling cost.
Editing, Data, and Integration
Editing and Version Management
-
Q: Can I still edit a journey after it is activated?
A: You can modify only existing node settings (such as message content or delay duration), but you cannot add or delete nodes.
You must pause the journey before making changes. -
Q: Are historical versions retained?
A: No. Please keep your own records of changes and timestamps.
Data and Reports
-
Q: How often is the Node Performance Report updated?
A: Once per hour. -
Q: Can reports be exported?
A: Report download is currently not supported. -
Q: How is Unique Click calculated?
A: It requires GA4 + UTM. The system excludes repeated clicks from the same contact and records only the first one.⚠️ Additional note: SDK behaviors (such as
page_viewandpurchase) are not reflected in report metrics such as clicks, revenue, or orders. If you want to track conversion results, please use GA4 UTM parameters in your messages.
SDK Integration Notes
- Web SDK installation must be completed.
- Currently, only the following standard events are supported:
-page_view: view page
-add_to_cart: add to cart
-purchase: complete purchase - SDK affects only "journey entry" and "node branch conditions." It does not affect click or revenue metrics in reports.
- The same True Contact can trigger an SDK event only once per hour.
-
You can use "Web channel" in the trigger condition to filter specific website sources (up to 5).
👉 For SDK integration steps, please refer to: Setup Guide | Software Development Kit (SDK) Installation Guide
Custom Fields and Scheduled Trigger FAQs
Q: If I archive a Custom Field in Admin Center and then unarchive it, will historical data disappear? Will unarchiving trigger the journey again?
A: Historical data will not disappear. Archiving only hides the field from the interface and blocks new writes. After unarchiving, previously stored values will be displayed again in full. The act of unarchiving itself does not trigger the journey again. However, after unarchiving, if the field later receives a new value change, it will normally trigger the corresponding On Update journey.
Q: If a Custom Field value is changed through the API or by a support agent in CAAC, will it trigger a MAAC journey?
A: Yes. If your brand has CDH enabled, MAAC, CAAC, and the API all share the same underlying data. As long as the field changes and matches the trigger condition, the journey starts automatically.
Q: If I use an Action Node with "Clear" (Set to Null), will it trigger another journey that listens to the same field?
A: Yes. Changing a field value from "has value" to "Null" is also considered a value update, so it normally triggers any On Update journey that listens for changes to that field.
Q: What is the scan frequency for Scheduled triggers?
A: The system scans once per day at the Scheduled Time configured in the trigger node (based on the organization timezone). For example, if you set 09:00 AM, the system scans once every day at 9 AM.
Q: How exactly does "Ignore Year" work in On Anniversary?
A: During comparison, the system automatically ignores the year (YYYY) stored in the field and compares only the month and day (MM-DD). For example, if a contact's Birthday is 1990-05-20, then in On Anniversary mode, the journey will match and trigger every year on 05-20.
Q: How is timezone handled for the Scheduled Time?
A: Scheduled Time follows the organization timezone configured in MAAC. For example, if the organization timezone is UTC+8 and Scheduled Time is set to 09:00 AM, the system performs the trigger scan at 9 AM Taiwan time.
Channel-specific FAQs
Q: What happens if a WhatsApp template is paused or disabled while the journey is running?
A: If a WhatsApp message template used in the journey is reviewed by Meta as PAUSED or DISABLED, the corresponding Send WhatsApp Message node cannot send messages. The system displays a warning icon on the affected node in the journey canvas. We recommend checking template status regularly and replacing the template with another approved one when needed.
Q: Why might the WhatsApp "Read" metric look lower than expected?
A: WhatsApp's read receipts can be turned off by individual users. When a user disables this feature, the system cannot receive a read signal even when the message has actually been read. As a result, the WhatsApp "Read Rate" may be lower than the actual reading rate. This is a WhatsApp platform limitation, not a system issue.
Q: What is the "First Message" trigger?
A: The "First Message" trigger fires the journey when a contact proactively sends a message to your brand account on LINE or WhatsApp for the first time. The system makes this determination based on whether the contact's last_message_time field is empty (IS NULL). When a LINE friend unfollows or a WhatsApp user opts out, the system clears this field, so the next message that contact sends qualifies as a "First Message" again.
Q: Are there extra fees for sending WhatsApp messages?
A: Yes. WhatsApp messaging is billed under Meta's Conversation-based Pricing model. Each time a 24-hour conversation window is opened, charges apply based on message category (marketing, service, authentication, and so on) and the contact's country or region. These fees are billed by Meta and are separate from MAAC platform fees. We recommend factoring WhatsApp conversation costs into your journey planning.
# Use Cases
👉 For scenario examples, please refer to: Use Cases | Journey Feature Application Guide