Triggers start a conversation or react to an event
MENU can start a shopping menu. Order Created can start an order confirmation. Event triggers require the connected module to produce the event.
Flowmaker · AI Flow Builder
Using CRM events and follow-up reminders? Follow the CRM automation tutorial.
Welcome customers, collect answers, help them shop and bring in your team. This guide takes you from your first WhatsApp flow to confident, reliable automation.
A flow is a sequence of connected steps. Each step is a node. A connection tells the flow where to go next, and a labelled output tells it which path to take. You can build useful flows without AI; add AI only where it helps answer or understand a question.
MENU can start a shopping menu. Order Created can start an order confirmation. Event triggers require the connected module to produce the event.
Send a message, save an answer, update a contact or call an API. Most actions continue as soon as they finish.
Ask Question, Quick Reply Buttons and List Menu Message pause at that step until the customer responds. Each output needs a connected next step.
Branch gives a True/False choice; Switch gives several cases. Connect the fallback so an unexpected answer still has a useful destination.
Start with three nodes and a test phone. Your goal is simple: when a customer sends MENU, they receive one welcome message.
Connect your WhatsApp Business number and check that you can receive a message in the inbox. Make sure the bot is enabled for your test contact. A simple keyword flow needs no AI key.
Open AI Flows in your dashboard and create a flow called “MENU — welcome”. Open its Flow maker. Check its Active/Disabled status and disable it while preparing the graph.
From the triggers panel, add On Keyword Match. Add MENU with Exact matching. This gives your test a predictable starting point; “menu” will also match.
Add Send Text Message from the messaging panel. Enter “Welcome! Thanks for reaching out to our team.” A text message continues immediately; it does not wait for a reply.
Drag from the MENU keyword output to the message input. Add End Flow and connect the message output to it. A line tells Flowmaker which step to run next.
Click Save. Fix validation errors and review warnings about missing connections or incomplete settings. Saving the graph and enabling a flow are separate actions; saving an already active flow changes its live behavior.
Enable the flow from AI Flows. From your test phone, send MENU to the connected number. You should receive one welcome message. Send a different word and confirm this exact-keyword flow does not respond.
Open History in the builder or AI Flows list and check the matching trigger, message and completed path. Once this works, replace the text step with Quick Reply Buttons and connect each choice to a useful action.
Need to connect your number first? Follow the WhatsApp setup guide.
Use the names below to find nodes in the builder. Each entry explains what to configure, what happens next and how to avoid a common mistake. Store, Commerce, Verification, Email and Reminders features need their respective modules and integrations configured for your account.
| I want to… | Choose | Remember |
|---|---|---|
| Say something | Send Text Message | Continues immediately |
| Collect an answer | Ask Question | Waits and saves a reply |
| Offer a few choices | Quick Reply Buttons | Connect each choice |
| Check one condition | Branch (If / Else) | Connect True and False |
| Match several values | Switch (Multi-Path) | Connect the default |
| Wait before the next action | Delay Timer | Pauses the flow; max 24 hours |
| Nudge someone who has not replied | Smart Follow-Up | Conditional mode; flow continues |
| Send a later reminder | Reminder Due → WhatsApp Template | Schedule in Reminders first |
Showing 69 of 69 nodes. Open a node for setup, outputs and a practical tip.
Starts on a regular incoming WhatsApp message.
Connect to your welcome menu or AI assistant.
Continues to the connected action; a flow waiting for a reply resumes at its waiting node.
Use one main entry flow. Multiple active flows with overlapping triggers can respond to the same message.
Node identifier: incoming_message
Welcomes a contact whose conversation has only its first stored message.
Write a short welcome and connect the next action.
Continues when the first-message condition matches.
Test with a new contact. Existing message history, including outgoing messages, can prevent this trigger from matching.
Node identifier: first_message
Starts a specific path for words or patterns such as MENU, HELP, or order codes.
Add a keyword, choose Exact, Contains, Starts With, Ends With, or Regex, and connect that keyword’s output.
Uses the matched keyword output; no match stops this entry path.
Matching ignores letter case by default. Priority order is Exact → Starts With → Ends With → Contains → Regex.
Node identifier: keyword_trigger
Runs when the connected store creates an order.
Connect your store and choose any order filters.
Connect the matching event output to your first action.
Use actual order event variables from the variable picker; test with a new order.
Node identifier: order_created
Runs when an order’s status changes.
Choose the relevant status filter and prepare a status message.
Connect the matching event output to your first action.
Use separate messages for different statuses and test the integration’s emitted status values.
Node identifier: order_status_updated
Runs when the connected cart changes.
Connect the store/cart integration and add the next action.
Connect the matching event output to your first action.
A cart may change repeatedly; avoid sending a message on every change.
Node identifier: cart_updated
Runs when your store reports an incomplete cart.
Configure abandonment detection in the store integration first.
Connect the matching event output to your first action.
This trigger receives an event; it does not decide by itself when a cart becomes abandoned.
Node identifier: abandoned_cart
Runs when a checkout is created.
Connect the checkout integration and configure available filters.
Connect the matching event output to your first action.
Starting checkout does not confirm payment.
Node identifier: checkout_created
Runs when checkout details change.
Choose the checkout filters relevant to your integration.
Connect the matching event output to your first action.
Updates may happen several times; limit customer notifications.
Node identifier: checkout_updated
Runs when the connected catalog reports a catalog-open event.
Connect your catalog/store tracking and the next action.
Connect the matching event output to your first action.
Verify that your integration emits this event; simply sending a catalog link does not prove it was opened.
Node identifier: catalog_opened
Runs when the store reports a product update.
Connect product update events to an internal alert or API action.
Connect the matching event output to your first action.
Product events may have no customer attached. Use staff alerts rather than assuming a customer recipient exists.
Node identifier: product_updated
Runs after the Commerce integration confirms a payment.
Enable Commerce and connect your configured payment gateway.
Connect the matching event output to your first action.
Use this event to confirm payment; a clicked payment link is not confirmation.
Node identifier: commerce_payment_received
Runs after the Commerce integration reports payment failure.
Connect a helpful retry or support path.
Connect the matching event output to your first action.
Avoid automatic repeated payment requests; explain what the customer can do next.
Node identifier: commerce_payment_failed
Runs when Commerce reports a processed refund.
Connect an appropriate confirmation template.
Connect the matching event output to your first action.
Report the recorded refund status without promising a bank settlement time.
Node identifier: commerce_refund_processed
Runs when Commerce activates a subscription.
Enable subscriptions and connect a welcome action.
Connect the matching event output to your first action.
Keep activation and renewal messages separate.
Node identifier: commerce_subscription_activated
Runs when Commerce reports a subscription renewal.
Connect your renewal confirmation.
Connect the matching event output to your first action.
Use the real renewal event data for dates and amounts.
Node identifier: commerce_subscription_renewed
Runs when Commerce reports cancellation.
Connect a cancellation acknowledgement.
Connect the matching event output to your first action.
Use actual subscription details for access end dates.
Node identifier: commerce_subscription_cancelled
Runs when Commerce reports expiry.
Connect a renewal or support message.
Connect the matching event output to your first action.
Expiry behavior depends on your subscription configuration.
Node identifier: commerce_subscription_expired
Runs when the Reminders module creates a reservation.
Set up reservations and connect the confirmation action.
Connect the matching event output to your first action.
This node reacts to a reservation; it does not create one.
Node identifier: reservation_created
Runs when a reservation is cancelled.
Connect a cancellation message or staff alert.
Connect the matching event output to your first action.
Keep cancellation messages separate from reminder flows.
Node identifier: reservation_cancelled
Runs when a scheduled reminder becomes due.
Create the reminder in the Reminders module first.
Connect the matching event output to your first action.
Choose an approved template if the customer’s messaging window may be closed.
Node identifier: reminder_due
Runs when a WhatsApp template’s status changes.
Choose the relevant template/status filters.
Connect the matching event output to your first action.
This tracks template approval, pause or rejection; it is not message delivery/read tracking. Use internal alerts.
Node identifier: template_status_updated
Sends a text reply to the current customer.
Enter a message and insert variables using the picker.
Sends, then continues to the next connected action.
Use for a statement. Use Ask Question when you need to wait for an answer.
Node identifier: message
Sends an image with an optional caption.
Upload an image or supply an accessible media URL.
Sends, then continues.
Test the image on a phone and make the caption meaningful without the image.
Node identifier: image
Sends a brochure, document or invoice.
Upload your document and configure its filename/caption.
Sends, then continues.
Check that the customer can open the file and that it contains the correct customer’s information.
Node identifier: pdf
Sends a video with an optional caption.
Upload a supported video or set its accessible URL.
Sends, then continues.
Keep demonstrations short and explain what the customer should watch for.
Node identifier: video
Sends a Meta-approved template with mapped parameters.
Choose an approved template, language and parameter values; connect quick reply outputs if used.
Can wait for template quick replies and follow the selected button path.
Use templates for proactive messages and outside the customer service window. Approval does not replace customer opt-in.
Node identifier: template
Shows up to three choices the customer can tap.
Write a prompt, name each button and connect each button output.
Waits for the reply, then follows the selected button output.
Use distinct labels such as Shop, My orders and Talk to team; include an unmatched-reply path where available.
Node identifier: quick_replies
Shows a selectable menu for more choices.
Add sections and rows, a menu button title and connect the row outputs.
Waits for a selection and follows that row’s path.
Keep the menu short (up to ten rows) and test every choice plus an unexpected typed reply.
Node identifier: list_message
Sends a message with a button that opens a website.
Set the text, button label and destination URL.
Sends and continues; opening the URL does not provide a chat reply.
Use Quick Reply Buttons for choices that must branch the conversation.
Node identifier: message_link
Sends a WhatsApp alert to configured staff or external recipients.
Choose agents or phone recipients and write the alert.
Sends the notification and continues.
Check recipients and share only the information needed to handle the request.
Node identifier: send_ext_message
Sends an email through the company’s email configuration.
Configure company SMTP, recipient, subject and message.
Sends and continues.
Collect and validate an email address before using a customer reply as the recipient.
Node identifier: send_email
Sends an official Meta WhatsApp Flow interactive multi-screen form and captures structured responses.
Select an approved Meta WhatsApp Flow, configure CTA text, screen mode, and response variable prefix.
Pauses until the customer submits the interactive form, stores submitted fields as flow variables, and continues via Submitted or Timeout/Fallback.
Submitted form fields are automatically mapped into flow variables (e.g. {{flow_response.field_name}}) for downstream CRM or Branch nodes.
Node identifier: whatsapp_flow
Asks for information and saves the customer’s reply.
Write one question, name its variable (for example lead_email), and optionally enable validation.
Pauses until the next reply; validation offers Valid and Invalid paths.
Connect invalid input to a clear retry. Saving a flow variable does not update the contact profile.
Node identifier: question
Saves collected information to the contact record.
Map a contact field to your collected variable.
Updates the profile and continues.
Validate answers first. Save durable data before End Flow clears temporary flow variables.
Node identifier: update_contact
Assigns the contact to a selected staff member.
Select an agent from your company; None removes assignment.
Assigns and continues to the next action.
Assignment alone does not disable automation. Agree on how your team pauses the contact’s bot during a human conversation.
Node identifier: assign_agent
Adds or removes a contact from a contact group.
Choose the group and Add or Remove.
Updates group membership and continues.
Use groups for segmentation. Group membership does not assign a specific human agent.
Node identifier: assign_group
Labels a contact for segmentation.
Choose the tag and whether to add or remove it.
Updates tags and continues.
Use consistent tags such as demo_requested or needs_support.
Node identifier: tag
Moves a contact to a stage of a sales or service journey.
Select the journey and destination stage.
Moves the contact and continues; stage entry may trigger configured campaigns.
Review stage campaigns first to avoid sending duplicate messages.
Node identifier: move_journey_stage
Creates or updates a Sales CRM lead/enquiry for the active contact.
Select the CRM pipeline, initial stage, enquiry title, requirement template, and optional deal value or owner.
Creates the enquiry, stores {{crm_lead_id}}, and continues.
Pairs with Ask Question or WhatsApp Interactive Flow to convert qualified chat replies directly into pipeline deals.
Node identifier: crm_create_enquiry
Moves the contact’s active CRM enquiry to a target pipeline stage.
Select the pipeline and target stage (and optional lost reason if moving to a Lost stage).
Updates the enquiry stage and continues.
Use after payment confirmation or qualification steps to keep your sales board synchronized automatically.
Node identifier: crm_update_stage
Appends a private internal note to the contact’s active CRM enquiry.
Write the note template using collected flow variables.
Saves the internal note and continues without sending a WhatsApp message.
Ideal for logging AI summaries, form answers, or qualification scores for sales reps.
Node identifier: crm_add_note
Creates a scheduled follow-up task on the contact’s CRM enquiry.
Configure task title, due offset (in minutes/hours/days), and optional assignee.
Schedules the task and continues.
Ensures a human rep follows up on high-intent leads even if the customer stops replying.
Node identifier: crm_schedule_task
Requests an OTP through the Verification module.
Set Profile ID, recipient Identifier, Channel (Auto, WhatsApp or Email) and Purpose. Leave Silent Mode off when a code should be delivered.
Requests verification and continues.
Prepare a separate Ask Question step to collect the code; requesting a code does not verify the contact.
Node identifier: verification_request
Checks the code supplied by the customer.
Map the collected code and the required verification reference/settings.
Connect both Verified and Failed outputs.
Provide a retry or a fresh-code path for invalid or expired codes.
Node identifier: verification_verify
Checks the status of a specific verification request.
Set the request ID variable from your verification request.
Connect Pending, Verified, Failed, Expired, Blocked and Rate Limited outputs; unmatched states fall back to Failed.
Use before actions that require a verified contact.
Node identifier: verification_status
Tests conditions with AND / OR logic and chooses one of two paths.
Choose Match ALL (AND) or Match ANY (OR), then configure variable, operator, and comparison value for each rule.
True when the condition group passes; otherwise False.
Supports 11 operators: equals, not_equals, contains, not_contains, starts_with, ends_with, greater_than, less_than, is_empty, is_not_empty, and regex_match. Always connect both outcomes.
Node identifier: branch
Routes one variable among several named cases.
Choose the variable and define the values to match.
Follows the matching case or the default output.
Use for region or product category; connect a default for unfamiliar answers.
Node identifier: switch
Chooses an open-hours or closed-hours path.
Add day/time ranges and check the company timezone.
Open during a configured range; otherwise Closed.
For overnight shifts, split hours across the two days. Test both paths in the company timezone.
Node identifier: opening_hours
Pauses the flow before continuing.
Choose duration and unit, then connect the next action.
The next action waits until the timer finishes. Delay is capped at 24 hours.
Use only when the next action really must wait. Timers require working background processing.
Node identifier: delay
Schedules a text follow-up while the flow continues immediately.
Choose duration, message and Conditional or Force mode.
Conditional is cancelled by a new reply; Force sends regardless of a reply.
It sends text, not a template. Keep it within the service window; use the Reminders module with a template for later outreach.
Node identifier: followup
Limits how often this contact can pass this counter in this flow.
Set the maximum and choose All time or Last 30 days.
True within the limit (including the current attempt); False after exceeding it.
Put before repeat-prone offers or expensive actions. It is not a daily/weekly counter.
Node identifier: counter
Transfers execution from the current flow to another active Flowmaker flow.
Select the target flow ID and whether to preserve current session variables.
Hands off execution to the target flow’s entry action with loop-depth protection (max 3 hops).
Break large monolithic bots into modular reusable flows (e.g. Onboarding, Checkout, Support Escalation).
Node identifier: jump_to_flow
Finishes this flow and clears its temporary contact state.
Connect each completed path to End Flow.
Stops here; no outgoing connection is needed.
Persist important answers first. Ending this run does not disable the flow or cancel every scheduled job.
Node identifier: end
Generates an AI answer and can route by customer intent.
Configure the company OpenRouter key/model, prompt, output variable and optional intentions/knowledge search.
Stores the result, then follows an intention output or the fallback path.
Add Send Text Message with {{ai_response_message}} for the default structured output. The AI node does not send the answer itself.
Node identifier: openai
Calls an external service and stores its response.
Set method, URL, headers/body and a response variable.
Stores response/status variables and continues to its single next action. Use a Branch after it to check the HTTP status.
Check response data/status before mapping fields. A request exception stops this path; it has no separate failure output. Test unavailable services too.
Node identifier: http
Stores a named value for later steps in this flow.
Set a variable name and value; values can include other variables.
Stores the value and continues.
It stores text/value substitutions; it is not a spreadsheet formula engine or a permanent contact field.
Node identifier: datastore
Creates a tracked URL and stores it in a variable.
Set the target URL, output variable and available tracking labels.
Creates the link and continues.
Add a message or web-link node to send it. Generating a link does not send it to the customer.
Node identifier: tracked_link
Sends the customer a link to the connected catalog.
Configure your store/catalog and the message.
Sends and continues.
Make sure products and prices are ready before directing customers to browse.
Node identifier: catalog_link
Looks up products and saves matching product data.
Set a search term, result limit and variable prefix (default search_results).
Stores results and their count, then continues.
Add a Branch checking search_results_count before showing a result; search alone does not send a menu.
Node identifier: product_search
Adds a selected product and quantity to the customer’s cart.
Supply a valid product ID and quantity from a confirmed selection.
Updates the cart and continues.
Do not treat a typed product name as an ID. Confirm the product and quantity first.
Node identifier: add_to_cart
Sends a summary of the customer’s current cart.
Configure the summary text and available options.
Sends the summary and continues.
Include a helpful route for an empty cart before checkout.
Node identifier: cart_summary
Creates/sends a checkout link for the current cart.
Connect cart setup and configure the checkout message.
Sends and continues.
The cart must contain valid items; payment is confirmed through the payment/order integration.
Node identifier: checkout_link
Loads a customer’s order into flow variables.
Choose latest/specific order selection and an output prefix (default selected_order).
Loads order data and continues.
Fetch before composing a receipt; handle missing orders.
Node identifier: order_details
Lets the customer select one of their recent orders.
Configure the menu and variable prefix (default selected_order).
Waits for selection; connect Selected and the fallback output.
Test with a customer who has orders and one who has none.
Node identifier: orders_list
Sends formatted text using previously loaded order variables.
Load/select an order first; edit the receipt text.
Sends and continues.
Use {{selected_order_number}} and {{selected_order_items_text}}; this node does not fetch the order itself.
Node identifier: send_order_details
Creates a Commerce payment link for a configured amount.
Enable Commerce/payment gateway and set amount, currency and message.
Creates/sends the payment link and continues.
Use checkout for a cart purchase. Confirm the amount and currency before requesting a payment.
Node identifier: commerce_send_payment_link
Checks contact credits and consumes one credit when allowed.
Set the free execution allowance; connect both outcomes.
True if credits allow execution (then deducts one); otherwise False.
This changes the contact’s credit balance. It does not calculate a product price or check your WACM subscription plan.
Node identifier: check_pricing
A variable is a named value you can use in later steps. Write it inside double braces or insert it from the variable picker. For example, Hello {{contact_name}}! uses the customer’s saved name.
| Value | Example | Where it comes from |
|---|---|---|
| Saved contact information | {{contact_name}}, {{contact_email}} | The contact profile; these may be empty |
| Latest customer message | {{contact_last_message}} | The contact’s latest message |
| Answer to your question | {{lead_email}} | Ask Question with variable name lead_email |
| Value you set yourself | {{lead_source}} | Set Variable with name lead_source |
| Readable AI answer | {{ai_response_message}} | The message field of default structured AI output |
| Selected order | {{selected_order_number}} | Send Orders List or Fetch Order Details |
| Number of matching products | {{search_results_count}} | Product Search with the default prefix |
| API response status | {{lookup_status}} | HTTP Request with response variable lookup |
Question and DataStore values belong to this contact’s state in this flow. End Flow clears that temporary state. Use Update Contact Profile or an appropriate integration to keep information you need later. A variable created in one flow is not automatically available in another flow.
Order, payment and reservation variables depend on the event and configured prefix. Use the picker and inspect a test execution in History before mapping them. Add a fallback when a name, lookup or order is missing.
These are build recipes, not one-click imports. Start with the one closest to your goal, configure the listed prerequisites and test each outcome before adding more complexity.
Sales teams, education, real estate and service businesses
Before you start: A contact email field, a sales agent and an optional lead journey.
Check it works: Submit a valid email and an invalid email. Confirm the contact profile was updated before End Flow and the correct agent was assigned.
Any team with sales and support enquiries
Before you start: A WhatsApp connection, support agent and configured opening hours.
Check it works: Tap every button, type an unexpected reply, and exercise both open and closed paths. Check that overlapping incoming-message flows do not send a second welcome.
Teams with a maintained product or service knowledge base
Before you start: A configured company OpenRouter key/model, trained knowledge sources and a support agent.
Check it works: Ask a covered question, an unknown question and “I want to speak to a person”. Inspect History for output fields and verify that the message shows readable text rather than JSON.
Stores with customer orders in the connected Shop module
Before you start: Connected store data and a test customer with past orders.
Check it works: Select two different orders and confirm each receipt belongs to the current customer. Test the fallback using a customer with no orders.
Stores with configured abandonment events and checkout links
Before you start: An abandonment integration, customer opt-in and an approved cart-recovery template.
Check it works: Create a real test abandonment, check the checkout link and trigger again to test the counter limit. A link click must not be reported as a paid order.
Appointment, reservation and service teams
Before you start: The Reminders module, a reservation and approved confirmation/reminder templates.
Check it works: Create, remind and cancel a test reservation. Confirm that each event selects the correct flow and that the customer sees the correct appointment time.
Businesses using the Verification module
Before you start: Configured verification channel and the node’s recipient/reference settings.
Check it works: Try a correct code, incorrect code and expired code. Confirm that only Verified reaches the protected action.
Businesses with Commerce and a connected payment gateway
Before you start: Configured Commerce events and approved payment/subscription templates.
Check it works: Exercise both a successful and failed test transaction through your integration. Confirm no success message is sent merely because a link was opened.
Name it after its purpose, such as “DEMO — lead capture”. Start with the smallest working path and add decisions only when they help the customer.
Explain why you need the answer. Use buttons for predictable choices, validate emails/numbers and provide a helpful invalid-input path.
Include False, Closed, Invalid, default, unmatched and failure paths wherever the node provides them. Every completed path should have a deliberate ending.
Offer “Talk to team” and say what happens after assignment. Assignment and End Flow do not disable the contact’s bot; use your team’s bot pause process during handoff.
Put a counter before repeat-prone offers. Moving a journey stage can trigger another campaign; API requests and credit checks can change real data. Review those actions before enabling.
Use clear, accurate business information. Test unknown questions and connect AI intention/fallback routes. Ask AI to acknowledge missing information rather than invent answers.
Enable the intended flow after testing. If customers see unexpected behavior, disable that flow from AI Flows and inspect its History before making changes.
Start with History. Follow the steps for your test contact and find the last successful, waiting, skipped or failed node. In the history list, filter by flow/contact/status and open step details to inspect the input, output and error.
Confirm the flow is Active, the test contact’s bot is enabled and the incoming message appears in the inbox. Check Exact versus Contains keywords and their connected outputs. Event triggers need a real event from the relevant module.
Look for multiple active flows matching the same message, particularly broad On Incoming Message flows. Narrow their triggers and check History to identify which flows ran.
Waiting for the customer is expected. Reply from the same contact. Check that the selected button, row, Valid/Invalid or fallback output is connected.
Check spelling, choose the variable from the picker, and confirm the step that creates it ran earlier in this flow. Look at History for the actual value. End Flow clears temporary flow state.
The AI node stores its output. Add Send Text Message with {{ai_response_message}} when using the default structured output. Inspect History if you changed the output variable or the provider returned a different shape.
Check the company OpenRouter key, chosen model, provider availability and completed knowledge training. Review the failed step in History and provide a customer-facing fallback where the node offers one.
Check duration and units; Delay is capped at 24 hours. Confirm the flow/contact still exists. A conditional follow-up is cancelled by a new reply. Ask your administrator to check background workers if scheduled steps remain pending.
A successful flow step does not guarantee WhatsApp delivery. Check the inbox/message status, template approval, language, parameter mapping and the customer service window.
Confirm the module and integration are configured and emit that event. Test an actual order, abandonment or payment; manually typing an event name in chat does not trigger an event flow.
For support, share the flow name, test time and failing step/error. Remove customer details, API keys and verification codes from screenshots or exported history.
No. Keyword, message, question and routing flows work without an AI model. AI Agent / LLM and knowledge training require the company’s configured OpenRouter key and model.
Save updates the graph. Active/Disabled in AI Flows controls whether it executes. Saving changes to an active flow affects live conversations, so prepare and test changes carefully.
No. It finishes this run and clears temporary state for this flow. A later matching message/event can start it again. Disable the flow or use the contact’s bot setting when you need to stop automation.
Use Export in the AI Flows list to save JSON and Import to load a graph. Recheck agent/group selections, templates, variables and integration settings in the destination account before enabling it.
Availability depends on enabled modules, account configuration and permissions. Check the relevant setup with your administrator or WACM support.
WACM also offers AI-assisted flow generation. Treat the generated result as a starting point: review node settings, connections and customer messages, then run the same tests before enabling it.