A coffee shop feedback form for people who never complain

Updated 2026-10-30

Most cafe customers do not complain. They just stop coming. I would rather ask them while the cup is still warm. One link on a table card or a receipt gets you honest answers, and you read them all in one place.

How it works

  1. The visitor says how they ordered and when they came in, so you can match a comment to a time of day.
  2. They rate the coffee, the speed and the team, and pick what they noticed about the space.
  3. They name the one thing you should change and say if they will come back.
  4. They add an email only if they want an answer.

What a visitor's AI would ask

"What did you order?" Then "How quick was the service?" Then "If we could change one thing, what should it be?" It shows every answer to the visitor and sends only after a yes. Read more about agent-fillable forms.

Good to know

Keep the email optional. People are franker when nobody will follow up. Download the CSV once a week and read the one_change column first. Many of the same ideas repeat.

Running more than a counter? Browse forms for restaurants. A restaurant feedback form suits a sit-down menu. A shift swap request helps when the replies point to a staffing gap.

Questions

Where should I share the link in my cafe?

Share it where people wait: a printed card by the till, a receipt note, your newsletter or a social post. It is one public link, and all replies land in the same place.

How do I find out if one time of day is the problem?

Download the responses as CSV. Sort by visit_time, then compare coffee_rating and speed_rating. Low scores that cluster in one time slot often point to one shift or one machine.

Can a regular send feedback through their own AI?

Yes. Every public form offers Want your AI agent to fill this? The visitor's AI asks for missing answers, shows all of them, and submits only after a yes.

Try the form

Live demo ยท nothing is saved

How was your visit?

Tell us what you had and how it went. Your answers go straight to the people who make your coffee.

How did you order?
When did you come in?
What did you have?
Overall, how was your visit? (required)
How was the coffee?
How quick was the service?
How friendly was the team?
What did you notice about the space?
Will you come back?
You may contact me about this reply

Or paste the JSON

Give this to your AI. It needs the AI Form API MCP server or an API key. It makes the form and sends you the link.

text
Create this form with the AI Form API create_form tool (or POST https://aiformapi.com/v1/forms with my API key). Then reply with the public_url.

{
  "title": "How was your visit?",
  "description": "Tell us what you had and how it went. Your answers go straight to the people who make your coffee.",
  "fields": [
    {
      "id": "visit_type",
      "label": "How did you order?",
      "type": "single_choice",
      "options": [
        "Sat in",
        "Took it away",
        "Drive-through",
        "Delivery order"
      ]
    },
    {
      "id": "visit_time",
      "label": "When did you come in?",
      "type": "single_choice",
      "options": [
        "Early morning",
        "Mid-morning",
        "Lunch time",
        "Afternoon",
        "Evening"
      ]
    },
    {
      "id": "order_items",
      "label": "What did you have?",
      "type": "multi_choice",
      "options": [
        "Espresso drink",
        "Filter coffee",
        "Tea",
        "Cold drink",
        "Pastry",
        "Sandwich or lunch",
        "Something else"
      ]
    },
    {
      "id": "overall_rating",
      "label": "Overall, how was your visit?",
      "type": "rating",
      "required": true,
      "min": 1,
      "max": 5
    },
    {
      "id": "coffee_rating",
      "label": "How was the coffee?",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "speed_rating",
      "label": "How quick was the service?",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "team_rating",
      "label": "How friendly was the team?",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "space_notes",
      "label": "What did you notice about the space?",
      "type": "multi_choice",
      "options": [
        "Cosy",
        "Too loud",
        "Too hot or cold",
        "Clean tables",
        "Hard to find a seat",
        "Good for working"
      ]
    },
    {
      "id": "one_change",
      "label": "If we could change one thing, what should it be?",
      "type": "long_text",
      "max_length": 800
    },
    {
      "id": "come_back",
      "label": "Will you come back?",
      "type": "single_choice",
      "options": [
        "Yes, soon",
        "Probably",
        "Not sure",
        "Probably not"
      ]
    },
    {
      "id": "reply_ok",
      "label": "You may contact me about this reply",
      "type": "checkbox"
    },
    {
      "id": "reply_email",
      "label": "Email, only if you would like an answer",
      "type": "email"
    }
  ]
}

Or call the API

bash
curl -X POST https://aiformapi.com/v1/forms \
  -H "Authorization: Bearer $AIFORMAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"How was your visit?","description":"Tell us what you had and how it went. Your answers go straight to the people who make your coffee.","fields":[{"id":"visit_type","label":"How did you order?","type":"single_choice","options":["Sat in","Took it away","Drive-through","Delivery order"]},{"id":"visit_time","label":"When did you come in?","type":"single_choice","options":["Early morning","Mid-morning","Lunch time","Afternoon","Evening"]},{"id":"order_items","label":"What did you have?","type":"multi_choice","options":["Espresso drink","Filter coffee","Tea","Cold drink","Pastry","Sandwich or lunch","Something else"]},{"id":"overall_rating","label":"Overall, how was your visit?","type":"rating","required":true,"min":1,"max":5},{"id":"coffee_rating","label":"How was the coffee?","type":"rating","min":1,"max":5},{"id":"speed_rating","label":"How quick was the service?","type":"rating","min":1,"max":5},{"id":"team_rating","label":"How friendly was the team?","type":"rating","min":1,"max":5},{"id":"space_notes","label":"What did you notice about the space?","type":"multi_choice","options":["Cosy","Too loud","Too hot or cold","Clean tables","Hard to find a seat","Good for working"]},{"id":"one_change","label":"If we could change one thing, what should it be?","type":"long_text","max_length":800},{"id":"come_back","label":"Will you come back?","type":"single_choice","options":["Yes, soon","Probably","Not sure","Probably not"]},{"id":"reply_ok","label":"You may contact me about this reply","type":"checkbox"},{"id":"reply_email","label":"Email, only if you would like an answer","type":"email"}]}'

JSON definition

json
{
  "title": "How was your visit?",
  "description": "Tell us what you had and how it went. Your answers go straight to the people who make your coffee.",
  "fields": [
    {
      "id": "visit_type",
      "label": "How did you order?",
      "type": "single_choice",
      "options": [
        "Sat in",
        "Took it away",
        "Drive-through",
        "Delivery order"
      ]
    },
    {
      "id": "visit_time",
      "label": "When did you come in?",
      "type": "single_choice",
      "options": [
        "Early morning",
        "Mid-morning",
        "Lunch time",
        "Afternoon",
        "Evening"
      ]
    },
    {
      "id": "order_items",
      "label": "What did you have?",
      "type": "multi_choice",
      "options": [
        "Espresso drink",
        "Filter coffee",
        "Tea",
        "Cold drink",
        "Pastry",
        "Sandwich or lunch",
        "Something else"
      ]
    },
    {
      "id": "overall_rating",
      "label": "Overall, how was your visit?",
      "type": "rating",
      "required": true,
      "min": 1,
      "max": 5
    },
    {
      "id": "coffee_rating",
      "label": "How was the coffee?",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "speed_rating",
      "label": "How quick was the service?",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "team_rating",
      "label": "How friendly was the team?",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "space_notes",
      "label": "What did you notice about the space?",
      "type": "multi_choice",
      "options": [
        "Cosy",
        "Too loud",
        "Too hot or cold",
        "Clean tables",
        "Hard to find a seat",
        "Good for working"
      ]
    },
    {
      "id": "one_change",
      "label": "If we could change one thing, what should it be?",
      "type": "long_text",
      "max_length": 800
    },
    {
      "id": "come_back",
      "label": "Will you come back?",
      "type": "single_choice",
      "options": [
        "Yes, soon",
        "Probably",
        "Not sure",
        "Probably not"
      ]
    },
    {
      "id": "reply_ok",
      "label": "You may contact me about this reply",
      "type": "checkbox"
    },
    {
      "id": "reply_email",
      "label": "Email, only if you would like an answer",
      "type": "email"
    }
  ]
}