Fetchply Docs
Guided Flows

Build and publish a Guided Flow

Create a flow from a template, edit its graph, fix validation issues, and release a safe version to visitors.

Create the flow

Open Guided Flows, choose a template or start blank, and give the flow a name visitors and teammates can recognize. The optional description is shown to visitors as a hover tooltip in the chat widget's Guided help list, so keep it short and clear.

Write the starting question

Set the visitor prompt and at least one option. Mark the intended first question as the start node.

Each question has one optional Key directly below it. When a visitor selects any option, Fetchply stores that option's button text under the question's key. The key fills in from the question by default. Shorten it if needed, then use the same key when mapping an answer to a Google Sheet column. Clear the key if you do not want to save an answer from that question.

If an older question shows an empty Key after its options were saved under different names, enter one replacement key before republishing. The new key applies to every option in that question.

Connect every option

Route each option to another question or an outcome. Add an optional answer or media that appears after a visitor selects it.

Ask for a typed answer when you need details

Some questions have no fixed options: you need the visitor's own name, email, phone number, or address. Add an Ask for input node from the node library. Pick the answer type (short text, email, phone number, number, or link), give it a Key so the answer is saved, and connect it to the next step.

The visitor sees a text box and types their answer. Fetchply checks it before moving on: an email must look like an email, a phone number must be a real number, and a link must be a valid web address. If the answer does not fit, the visitor is asked again with a short hint (you can write your own hint under "If the answer is invalid"), and the flow only continues once the answer is valid. This works on your website, WhatsApp, and Instagram; on WhatsApp and Instagram the visitor simply types their reply.

Use the Required answer toggle to decide whether the visitor must answer. When it is on (the default), the flow waits for a valid answer. When you turn it off, the question becomes optional: on your website the visitor sees a Skip this question button and can move on without answering, and nothing is saved for that question. On WhatsApp and Instagram, where the visitor just types a reply, they can reply with a dash (-) or "skip" to move past an optional question. Turn it off for optional details like a phone number or a note, and keep it on for anything the next steps depend on.

Use these keys later in an Ask for input chain to collect everything an order needs (name, delivery address, and any optional email, phone, or note), then map them in the order node.

Add Product and Order nodes when needed

If Commerce is on, let visitors buy in two steps. Add one or more Product nodes where the visitor should pick an item: search your catalog by product name or SKU, select Add on each product to offer, and set quantities with the plus and minus buttons. Every product picked along the visitor's path is added to the same order. Then add one Order node at the point where the order should be placed, and connect a clear visitor choice such as Place my order into it.

Every item uses your single store currency from Commerce → Settings. The picker flags a product that is hidden or out of stock so you can swap it before publishing.

When the visitor reaches the Order node they always first see a review of the order — the products, quantities, shipping, the total including shipping, and the details you collected — and place it with a Confirm order button (or Cancel to stop). The review cannot be turned off, so a visitor never places an order without seeing it first. Shipping and tax come from Commerce → Settings. The order is only created after they confirm; cancelling ends the flow without creating an order.

Before the Order node, collect the customer's name and full delivery address with Ask for input nodes (see the step above), giving each a Key. Then map those two required Keys in the Order node. Email, phone, and notes are optional: collect them only if you need them, and use each input node's Required answer toggle to decide whether the customer must fill them in. Fetchply checks the customer details, current product, currency, and stock again before saving the confirmed order.

Email and phone are never forced by the Order node, but any email or phone the flow does collect must be valid before the order is saved. A number such as +1 555 123 4567 or (021) 111-222-333 is accepted; free text like "call me later" is rejected. If you want email or phone to be mandatory, keep the Required answer toggle on for that input node.

Show a review and confirmation

When the order is placed, the visitor sees a confirmation that reviews everything they ordered: the order number, each product with its quantity and price, the total, and the details you collected (name, delivery address, and any email, phone, or note). Show this on your website, WhatsApp, and Instagram alike.

Leave the Confirmation message blank to show this full review automatically. To write your own message, type it in and drop in any of these placeholders, which Fetchply fills in when the order is confirmed:

  • {orderId} — the order number, such as FP-1A2B3C4D.
  • {orderTotal} — the order total, such as $55.00.
  • {orderSummary} — the full itemized review described above.
  • Any answer Key you saved, such as {email} or {name}.

For a clear "review before you buy" step, add a Yes / No question just before the order node ("Ready to place your order?"), and route Yes into the order node. Reaching the order node is the visitor's explicit confirmation.

Configure flow settings

Choose enabled channels, input policy, and any channel-specific labels. The Instagram and WhatsApp switches stay turned off and cannot be toggled until you connect that channel in Integrations. Once connected, the switch becomes available. If a channel is disconnected later while a flow still uses it, its switch stays available so you can turn it off, but the flow no longer reaches that channel until you reconnect.

Preview and validate

Use the visitor preview, follow every route, and fix all highlighted issues. The editor auto-saves and warns about cross-tab conflicts.

Publish

Select Publish. New conversations use the published version. Existing runs keep their consistent flow state.

Ending nodes such as Complete flow, Return to menu, and Talk to a person sit on the canvas like any other node. You can drag them to tidy the layout, and you can remove Return to menu or Talk to a person by selecting the node and pressing Delete. Any options that pointed to a removed ending simply become unconnected, so reconnect them before publishing. Every flow always keeps at least one Complete flow ending, so add a second one before removing the last.

Use Turn off for a temporary stop. Archive only when you no longer need the flow and understand that active chats are stopped.

If a flow changes in another tab, reload the latest draft before continuing. Do not overwrite a teammate's newer work.

Commerce order troubleshooting

  • The flow will not publish: Turn Commerce on, attach at least one product to every Product node, make sure every Order node can be reached only after a product is picked, and map captured name and delivery-address answers in each Order node. Email and phone mappings are optional.
  • You cannot find a product in a Product node: Type part of its name or SKU in the search box. If nothing appears, the product may be hidden or not added yet. Add or unhide it in Products, then search again.
  • A selected product shows a warning: The picker marks a product that has been hidden, sold out, or left with less stock than the quantity you set. Adjust the quantity or remove the product so the order can go through.
  • The order is not placed even though the customer answered: A required detail is missing or invalid. An order always needs a name and a delivery address. Email and phone are optional, but if the flow collects one it must be valid (an email must look like a real address, a phone must be a real number). Ask for the detail again with a clear example. Using Ask for input nodes for these details catches most mistakes as the customer types.
  • A confirmation shows {orderId} or another placeholder as plain text: The placeholder was misspelled. Use the exact spellings {orderId}, {orderTotal}, {orderSummary}, or a saved answer Key like {email}. Unknown placeholders are left untouched so you can spot the typo.
  • The flow keeps re-asking the same question: That step is an Ask for input node and the typed answer did not match its type (for example a name typed into an email field). Check the answer type on the node, and tell the customer the expected format in the question or the invalid-answer hint.
  • A product was hidden or sold out after publishing: The order is blocked safely at runtime. Update the node, choose an available product, and republish.
  • The visitor repeats the same choice: Fetchply uses the original flow event and does not create a duplicate order.
  • Commerce is turned off while a flow is live: The order node cannot place a new order until Commerce is enabled again.