Features
Everything it can do, not everything it can say.
A chatbot answers questions. An agent changes things — cancels the order, moves the address, books the return, pauses the subscription. This is the full list, and each line names the call that does the work.
Orders
The largest share of any support queue, and the part a chatbot cannot touch: not answering questions about an order, but changing one.
Find the order and where it actually is
Pulls the order from Shopify and the live status from the carrier, rather than repeating the tracking link the customer already has.
- lookup_order
- lookup_fulfillment
Change the delivery address
Before picking starts, and pushed to your warehouse as well as Shopify — an address changed in one place only is the same parcel going to the same wrong door.
- edit_order
Add, remove or swap a line
Reductions go to the warehouse before the edit is committed; additions are held back until the invoice is paid. Nobody gets refunded for goods that then ship, and nothing is picked that nobody paid for.
- edit_order
Cancel, with or without a refund
Cancelled at the warehouse first, then in Shopify. If the parcel is already being picked you are told, because at that point only a person phoning the 3PL can stop it.
- cancel_order
Send a free replacement
When something arrived wrong or broken, the agent prepares the replacement order and sends it to you for approval instead of asking the customer to start again.
- create_replacement_order
Place an order on the customer’s behalf
For the phone-order habit that never quite went away, and for B2B buyers who would rather say what they need than click through a cart.
- create_order
Returns, refunds and shipping
Booked end to end inside the conversation, on your own carrier agreement — we never resell shipping, and the rate on the label is the one you negotiated.
Create the return, inside your policy
Return window, eligible products, accepted reasons. A request that falls outside them is explained and refused rather than booked and reversed later.
- create_return_request
Draw the label on your carrier account
Needs a connected carrier accountShipmondo, Profrakt, Proteria, Bring, nShift, Cargonizer or ShipEngine. With none of them connected the agent opens a ticket instead of promising a label it cannot produce.
- create_return_request
Find the nearest drop-off point
Needs a connected carrier accountFrom the customer’s own address, in the carrier’s live list — not the one the theme hard-coded three years ago.
- find_pickup_points
Quote what shipping will cost
Needs a connected carrier accountBefore the customer asks you to guess, and from the same agreement the label will be drawn on.
- get_shipping_estimates
Refund, fully or in part
Only after the customer has confirmed in writing, and last in the sequence — after the goods are accounted for, never before.
- create_refund
Selling from your catalogue
Pre-purchase questions are revenue, not cost. Sizing, materials, compatibility and stock, answered from your own products.
Browse and recommend
Searches your catalogue for what actually matches the question, then reads the full detail on the few it wants to put forward.
- browse_products
- get_product_details
Tell the truth about stock
Three answers, not two: in stock, sold out, or on a shelf in your shop but not orderable online. A quarter of Shopify stores have more than one location, and the Admin API counts stock the web shop never sells from.
- browse_products
- get_product_details
Know what they are looking at
The agent can read the page the customer has open, so “does this come in a wider fit” needs no product name.
- get_page_context
Find or create the discount
Looks up the codes you are already running before it invents one, and can issue a new one where you allow it.
- search_discounts
- create_discount_code
Show them wearing it
A photorealistic image of the customer with the product, composed from a selfie they chose to upload.
- virtual_try_on
- set_try_on_selfie
The customer record
So the second conversation does not start from nothing, and so what the agent learns ends up somewhere you can use it.
Look up the customer
By email or customer ID, once they have verified who they are.
- lookup_customer
Update name, phone and address
The correction a customer makes once and expects to hold, rather than repeating it on the next order.
- update_customer
Tag a customer or an order
Appended, never replacing what is there. Your segments and flows keep working; this just feeds them.
- add_tags
Read their earlier conversations
Across every channel, not just this thread — the customer who emailed in March and is now in chat is the same person.
- search_conversation_history
Subscriptions
The queue nobody staffs for, and the one where a slow answer becomes a cancellation. Pause, skip and reschedule are usually what the customer actually wanted.
Pause, resume, skip or unskip
Needs Seal or AppstleOffered before cancellation is, because a paused subscriber is still a subscriber.
- seal_pause_subscription
- appstle_skip_billing
Move the billing date or the frequency
Needs Seal or Appstle“It arrives faster than I use it” is a frequency change, not a churn event.
- seal_reschedule_billing
- appstle_update_delivery_frequency
Change quantity, address or payment method
Needs Seal or AppstleThe three edits that otherwise arrive as an email on the day the card expires.
- appstle_update_line_quantity
- appstle_update_shipping_address
- seal_update_payment_method
Cancel, when that is genuinely the answer
Needs Seal or AppstleWithout a retention maze. A customer who has decided and cannot leave writes the review about it.
- seal_cancel_subscription
- appstle_cancel_subscription
Your own knowledge
Policies, size guides, ingredient lists, the PDF the supplier sent. The agent answers from your documents, not from what a model happens to believe about your category.
Search what you uploaded
Returns the excerpt it used, so an answer you disagree with can be traced to the document that produced it and fixed at the source.
- search_knowledge_base
When a person is needed
The agent’s most useful judgement is knowing it has run out of ground. Escalating never costs extra — a conversation is charged once, whatever happens inside it.
Open a briefed ticket
With the order, the history and what it already tried attached. You start from a case, not from “hi, can you help”.
- escalate_to_ticket
Let the customer follow it
They can look up their own tickets and add to them, in their own language, without another email to your inbox.
- lookup_tickets
- get_ticket_details
- update_ticket
Make it right with a gift card
Compensation and apology credit, within the limits you set, at the moment it would actually land.
- create_gift_card
Channels
You choose where it works.
Every capability above is the same on every channel, and you turn on only the ones you want. Each channel gets its own agent configuration — a different tone for email than for Instagram, if you like — while they share your rules, your knowledge and one inbox. Start with the widget alone and add email in month two; nothing is bundled.
- Chat widget
Gmail
Outlook
- Microsoft 365
Instagram
Messenger
WhatsAppcoming
Slack
Microsoft Teams
What it will not do
The refusals are the product.
Everything on this page changes something in a real store, which makes the limits the part worth reading. These are mechanisms in the code, not assurances about the model.
No order data before the email is verified
A code to the address on the order, three attempts, five minutes. Nobody reads someone else’s delivery address by guessing an order number.
Your return policy is enforced, not interpreted
Window, products and accepted reasons are checked before anything is created. Most refusals we see in production are this working.
Orders you have tagged are left alone
Tag an order and the AI stops touching it. The lock is aimed at the AI on purpose — your own agents are warned, never blocked.
Returns can require your approval
Switch it on and the agent gathers everything, opens a ticket and waits. You approve from the inbox and the label goes out on its own.
It will say it is an AI
Off, when asked, or always — one setting for every channel. A persona keeps its name; “I am a person called Mali” is where the line is.
It stops rather than guesses
When the knowledge base has no answer, the outcome is a briefed ticket. An invented policy costs more than a handover does.