A customer asking for your menu should get your menu. They should not have to share an email address, pick a personality type, or answer three questions about their coffee habits first.

For a coffee shop, the strongest starting point for DM automation is usually a short route to information you already maintain: today's ordering page, the right location, or a staff member who can answer an unusual question. A useful exchange may be over in one message.

The harder part is keeping that message true when a pastry sells out, pickup pauses, or the shop closes early. Design around those changes before adding another campaign.

Choose the questions worth automating

Review a recent batch of Instagram messages and group them by the job the customer wants done. “Can I get two flat whites at ten?” is an order request. “Do you cater for offices?” is a sales inquiry. “Where is my drink?” is a service problem. They should not all get the same cheerful menu button.

Start with answers that have a dependable source:

  • Menu and pickup: link to the ordering page for the correct shop.
  • Visiting: publish location, opening hours, accessibility information you have verified, and any relevant seating policy.
  • Catering or large orders: explain how to request a quote and collect only the details staff need to assess it.
  • Problems with an order: route to a person with the order reference, without asking customers to send payment details in chat.

Keep orders in the system staff actually use. Square's coffee-shop product page, for example, describes an online ordering page alongside its point-of-sale tools. Sending a customer there avoids creating a second order list inside Instagram that a barista has to monitor.

Keep the menu campaign short

Here is an illustrative setup for a fictional shop with two locations. It is a proposed workflow, not a case study.

A Reel shows the weekend breakfast menu and says: “Comment MENU for the menu and pickup link.” The first private reply delivers a location page containing both menus. It also offers a regular button labeled “Choose my shop” for someone who wants help.

After that button is pressed, ask one question: “Downtown or Riverside?” The reply sends the correct location's ordering link and a short instruction: “Choose your items and finish checkout there. The ordering page will show the pickup options.” If the shop has only one location, skip the question and send the direct link in the first reply.

Do not write “Your order is reserved” after someone presses “Order now.” The customer has opened a page. The ordering system must accept the order and supply its confirmation before you can promise anything has been placed.

Manychat's comments trigger supports the keyword entry point and the initial private reply. It also distinguishes a regular button that continues a conversation from an “Open website” button: the website click alone does not open the standard 24-hour messaging window.

That distinction is useful even if you never send a follow-up. It means you can deliver the menu directly without pretending the customer has subscribed to a conversation. Add the guided button only when it helps them choose.

Let the ordering system own availability and timing

A DM saying “Ready in ten minutes” can become wrong while the queue grows. Use the timing your ordering system calculates instead of copying a fixed promise into an evergreen message.

Square's pickup documentation shows the settings behind that calculation: prep time, pickup hours, how far ahead customers can order, and limits on simultaneous pickups. It also allows restricted dates and turning pickup off. These are operational controls, not details your DM flow should guess.

Whichever ordering system you use, test this chain:

  1. A staff member marks an item unavailable. Check what a customer sees after following the DM link.
  2. Pickup closes for the day. Confirm that the page explains the next available option instead of accepting an impossible request.
  3. The customer chooses the other location. Confirm the checkout and confirmation still show the location they selected.
  4. Checkout fails or is abandoned. Make sure the DM does not send an order-confirmed message anyway.

If you have no online ordering system, say so clearly. Send the menu and invite people to order at the counter, or collect a request that staff must confirm manually. A request queue can work for catering; it needs a response owner and a stated lead time.

A small shop may get more value from accurate hours and a good menu page than from paid automation. If message volume is low enough to answer reliably yourself, fix those basics first.

Handle exceptions with a person

Allergen questions, refunds, missing items, and special catering requirements need a route beyond the menu. Use approved ingredient information where available, but do not let an improvised bot response guarantee that an item is safe for someone's allergy. Offer direct staff contact instead.

Assign responsibility for this queue at a time the shop can actually support. An automated response that promises someone will reply soon creates work whether or not a barista has time to read it. State the staffed hours and give the appropriate phone or in-person option for an order that needs attention now.

Pause routine messages during the handoff. Ask tool vendors to demonstrate that behavior, not just the first autoresponse. respond.io's Instagram overview documents managing messages in one inbox and direct links that open Instagram chat; Manychat documents the comment-led flow above. Evaluate them against the exchange your staff need to finish.

A menu request is not a standing promotion list

Meta's private-reply documentation permits one initial message within seven days of a comment. Follow-up requires the recipient to respond, with messages inside 24 hours of that response. For ordinary automation, build around the standard 24-hour window, not an assumed right to send next weekend's special.

A contact label such as “weekend menu” does not change this. In a Manychat community troubleshooting thread, a builder's attempt to start another flow from a tag still required the recipient's interaction. Keep contact organization separate from channel permission.

If you want a recurring newsletter or loyalty program, invite people to join through its own signup process and explain what they will receive. They should still get the menu they originally requested if they decline.

Measure an order, a visit, or an answer

Decide which outcome the flow serves. A pickup campaign should track completed orders where your ordering platform supports campaign attribution. A location flow might simply need to answer a recurring question without staff intervention. Neither needs a long conversation to count as useful.

For pickup, record menu-link clicks, completed orders attributed to the campaign, refunds or cancellations, and unresolved order problems. Use campaign parameters on links if the destination retains and reports them. Verify that with a test order; a parameter in the URL does not guarantee it appears in sales reports.

If you cannot connect the order to the message, report clicks and orders separately. Do not multiply clicks by your average ticket and call the result revenue. Our DM automation ROI guide covers the difference between tracked sales and sales the campaign actually added.

Square's coffee-shop page includes founder Keba Konte's account of using purchase data to understand drink interest at Red Bay Coffee. It is a vendor-published operator perspective, not evidence that DM automation drove those purchases. The useful lesson for your campaign is to look at what people bought before deciding which special deserves another post.

Before launch, run through the flow on a phone during both open and closed hours. Give one person the menu link, campaign end date, and shutdown responsibility. The DM campaign field guide is a place to record those decisions. When the weekend menu changes, that person should know exactly which message needs attention.

First published . Updated with current research and practical examples.