Exit survey questionnaire for customers who cancel

Updated 2026-10-30

Someone cancels, and you never learn why. The cancel button gives you a date, not a reason. I would rather ask a short set of questions at the moment they leave. This one is for customers, not for staff leaving a job.

Why do people cancel?

The form opens with one pick: hard to use, not worth it, moved to another product, no longer needed, or a fault. Then comes a free text box and a question about what was missing. The pick gives you counts. The text gives you the story.

Will they actually answer?

Keep it short and keep most of it optional. An email is asked for only if they are happy to hear from you once. A visitor can also let their own AI fill it in. It asks "What is the main reason you are leaving?" Then "Was something missing?" Then "Would you come back if we fixed this?" It shows the answers and sends only after a yes. See agent-fillable forms.

What do I do with the answers?

Count the reasons in the CSV. Read the would-return answers first, because those are the losses you can still fix. A waitlist catches people who want to hear when a missing feature ships. Happy customers belong in a customer satisfaction survey, and a website feedback form covers visitors who never signed up. More ideas are in forms for SaaS and startups and forms for Ecommerce and Shopify stores.

Questions

Is this the same as an employee exit interview?

No. It is written for customers who cancel a plan or an order. For staff who leave, build a separate form about the role, the team and the workload.

Should the survey be required before someone can cancel?

I would not force it. Link it after the cancellation and keep only the main reason and the rating required, so people do not abandon it halfway.

How do I count the reasons people give?

Download the CSV and group the reason column. The single pick gives clean counts, and the free text explains the biggest groups.

Try the form

Live demo ยท nothing is saved

Before you go

Sorry to see you leave. A few honest answers help us fix what went wrong. It takes about a minute.

What is the main reason you are leaving? (required)

A feature, an integration or an answer from support.

Another tool, a spreadsheet or nowhere. Optional.

How long were you with us?
How was your experience overall? (required)
How was our support?
Would you come back if we fixed this?
You may email me once about my answers

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": "Before you go",
  "description": "Sorry to see you leave. A few honest answers help us fix what went wrong. It takes about a minute.",
  "fields": [
    {
      "id": "cancel_reason",
      "label": "What is the main reason you are leaving?",
      "type": "single_choice",
      "required": true,
      "options": [
        "It did not do what I needed",
        "It was too hard to set up or use",
        "It cost more than it was worth to me",
        "I moved to another product",
        "I no longer need it",
        "I hit a technical problem",
        "Something else"
      ]
    },
    {
      "id": "reason_detail",
      "label": "Tell us more in your own words",
      "type": "long_text",
      "max_length": 1500
    },
    {
      "id": "missing_piece",
      "label": "Was something missing? What was it?",
      "type": "long_text",
      "help": "A feature, an integration or an answer from support.",
      "max_length": 1000
    },
    {
      "id": "switching_to",
      "label": "Where are you going next?",
      "type": "short_text",
      "help": "Another tool, a spreadsheet or nowhere. Optional.",
      "max_length": 200
    },
    {
      "id": "time_with_us",
      "label": "How long were you with us?",
      "type": "single_choice",
      "options": [
        "Less than a month",
        "A few months",
        "About a year",
        "More than a year"
      ]
    },
    {
      "id": "overall_experience",
      "label": "How was your experience overall?",
      "type": "rating",
      "required": true,
      "min": 1,
      "max": 5
    },
    {
      "id": "support_experience",
      "label": "How was our support?",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "would_return",
      "label": "Would you come back if we fixed this?",
      "type": "single_choice",
      "options": [
        "Yes, definitely",
        "Maybe, it depends",
        "No"
      ]
    },
    {
      "id": "contact_ok",
      "label": "You may email me once about my answers",
      "type": "checkbox"
    },
    {
      "id": "reply_email",
      "label": "Email, if you are happy to hear from us",
      "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":"Before you go","description":"Sorry to see you leave. A few honest answers help us fix what went wrong. It takes about a minute.","fields":[{"id":"cancel_reason","label":"What is the main reason you are leaving?","type":"single_choice","required":true,"options":["It did not do what I needed","It was too hard to set up or use","It cost more than it was worth to me","I moved to another product","I no longer need it","I hit a technical problem","Something else"]},{"id":"reason_detail","label":"Tell us more in your own words","type":"long_text","max_length":1500},{"id":"missing_piece","label":"Was something missing? What was it?","type":"long_text","help":"A feature, an integration or an answer from support.","max_length":1000},{"id":"switching_to","label":"Where are you going next?","type":"short_text","help":"Another tool, a spreadsheet or nowhere. Optional.","max_length":200},{"id":"time_with_us","label":"How long were you with us?","type":"single_choice","options":["Less than a month","A few months","About a year","More than a year"]},{"id":"overall_experience","label":"How was your experience overall?","type":"rating","required":true,"min":1,"max":5},{"id":"support_experience","label":"How was our support?","type":"rating","min":1,"max":5},{"id":"would_return","label":"Would you come back if we fixed this?","type":"single_choice","options":["Yes, definitely","Maybe, it depends","No"]},{"id":"contact_ok","label":"You may email me once about my answers","type":"checkbox"},{"id":"reply_email","label":"Email, if you are happy to hear from us","type":"email"}]}'

JSON definition

json
{
  "title": "Before you go",
  "description": "Sorry to see you leave. A few honest answers help us fix what went wrong. It takes about a minute.",
  "fields": [
    {
      "id": "cancel_reason",
      "label": "What is the main reason you are leaving?",
      "type": "single_choice",
      "required": true,
      "options": [
        "It did not do what I needed",
        "It was too hard to set up or use",
        "It cost more than it was worth to me",
        "I moved to another product",
        "I no longer need it",
        "I hit a technical problem",
        "Something else"
      ]
    },
    {
      "id": "reason_detail",
      "label": "Tell us more in your own words",
      "type": "long_text",
      "max_length": 1500
    },
    {
      "id": "missing_piece",
      "label": "Was something missing? What was it?",
      "type": "long_text",
      "help": "A feature, an integration or an answer from support.",
      "max_length": 1000
    },
    {
      "id": "switching_to",
      "label": "Where are you going next?",
      "type": "short_text",
      "help": "Another tool, a spreadsheet or nowhere. Optional.",
      "max_length": 200
    },
    {
      "id": "time_with_us",
      "label": "How long were you with us?",
      "type": "single_choice",
      "options": [
        "Less than a month",
        "A few months",
        "About a year",
        "More than a year"
      ]
    },
    {
      "id": "overall_experience",
      "label": "How was your experience overall?",
      "type": "rating",
      "required": true,
      "min": 1,
      "max": 5
    },
    {
      "id": "support_experience",
      "label": "How was our support?",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "would_return",
      "label": "Would you come back if we fixed this?",
      "type": "single_choice",
      "options": [
        "Yes, definitely",
        "Maybe, it depends",
        "No"
      ]
    },
    {
      "id": "contact_ok",
      "label": "You may email me once about my answers",
      "type": "checkbox"
    },
    {
      "id": "reply_email",
      "label": "Email, if you are happy to hear from us",
      "type": "email"
    }
  ]
}