> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dmly.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Collect customer satisfaction scores

> Ask contacts to rate your service in WhatsApp, route each score to a different follow-up, and send happy responders to a Google review.

CSAT ("customer satisfaction") is a rating you ask a contact for at the end of a conversation. In DMLY it is a step inside an automation: the **CSAT Survey** node sends the question, the contact taps a rating, and the flow continues down a different branch for each score.

<Note>
  DMLY does not store or report CSAT scores. There is no average, no trend, and no CSAT report anywhere in the app. A score exists only as the branch the automation took at that moment. Design your survey around **what happens next** — escalate unhappy contacts, ask happy ones for a review — not around a number you plan to read later. See [Where results appear](#where-results-appear) below.
</Note>

## Ask for a score

Add a **CSAT Survey** node to a flow in the [flow builder](/automation/flow-builder).

<Steps>
  <Step title="Place the node where the conversation ends">
    A survey lands best after the work is done — after a support reply, after an appointment, after an order. Put a delay in front of it so you are not interrupting the conversation you are asking about.
  </Step>

  <Step title="Write the question">
    The default is **How would you rate our support today?**. Rewrite it in your own words — one short question, about one thing.
  </Step>

  <Step title="Choose a 3-point or 5-point scale">
    Ratings are shown as stars. The lowest option is labelled **Poor** and the highest **Excellent** by default, and you can change both.

    A 3-point survey arrives as tappable buttons, which is the fastest thing to answer. A 5-point survey arrives as a list the contact opens and picks from — more granular, one extra tap.
  </Step>

  <Step title="Route each score">
    Every score gets its own output port, so you decide branch by branch what a 1 means and what a 5 means. The builder's own advice: **Each score is its own port — route detractors straight to a human.**
  </Step>
</Steps>

<Tip>
  A survey with no branches wired up does nothing but ask a question. Since nothing records the answer, an unrouted port is a lost response.
</Tip>

## Send happy responders to a Google review

The strongest use of CSAT is turning a good score into a public review while the goodwill is fresh.

DMLY ships this as a ready-made automation template, **Post-chat CSAT → Google review**. Start from it rather than building the pattern by hand:

* An agent sends an outgoing message (the conversation is over).
* An hour passes.
* The **CSAT Survey** node asks for a 5-point rating.
* Happy scores get a short thank-you, then a **Request Google review** node.
* Unhappy scores are assigned to a person instead, so a human picks the conversation up.

The **Request Google review** node sends a tracked WhatsApp message pointing at one of your connected Google Business Profile locations, so you need a profile connected first. It never ends the conversation, whatever the outcome. See [Review requests](/reputation/review-requests) and [Reputation](/reputation/overview).

<Warning>
  Only route genuinely happy scores to a review request. Asking every responder — including the ones who just told you they are unhappy — is how you collect one-star reviews.
</Warning>

## Where results appear

There is no CSAT dashboard, no score breakdown and no export of ratings. What you can see is the automation's own activity:

<Columns cols={2}>
  <Card title="Automation analytics" icon="chart-simple" href="/automation/overview">
    Open **Analytics** on the automation itself for **Runs**, **Messages sent**, **Last run** and a paginated **Activity** feed of what it sent. It tells you the survey is going out, not how people scored it.
  </Card>

  <Card title="Overview" icon="gauge" href="/analytics/overview">
    The **Flow outcomes** panel shows where automation runs end up across your channel — Completed, Running, Waiting, Failed, Cancelled.
  </Card>
</Columns>

A survey waiting on a reply sits in the **Waiting** group in **Flow outcomes**. Contacts who never answer stay there rather than completing.

<Note>
  If you need the scores themselves, the practical workaround is to add a **Tag Action** node on each score's path before the branch continues — e.g. a `csat-1` … `csat-5` tag. Then the rating is on the contact record, and filterable by tag in [Contacts](/contacts/overview).
</Note>

## Surveys sent outside the 24-hour window

WhatsApp only lets you send a freeform message within 24 hours of the contact's last message. Past that, you need an approved template — see [Message templates](/broadcasts/message-templates) and [WhatsApp limits](/channels/whatsapp-limits).

<Accordion title="What happens when the window has closed">
  A **5-point** survey falls back to the built-in `dmly_csat` template, which must be approved by Meta for your workspace before it can send. If it is not approved, the node tries the normal send and records that the window was closed.

  A **3-point** survey has no matching template, so it can only send inside the window.

  If your surveys stop arriving for older conversations, that fallback template is the first thing to check.
</Accordion>

<Accordion title="Nobody is answering the survey">
  Usually timing. A survey that arrives mid-conversation gets ignored; one that arrives days later gets ignored too. Put a short delay after the last message, keep the question to one line, and prefer the 3-point scale — buttons are answered more often than a list.

  If nothing at all is sending, start at [Automation not triggering](/troubleshooting/automation-not-triggering).
</Accordion>
