Sending surveys
Updated August 24, 2026
Sending a survey puts a personal link in a customer’s hands over SMS, email or WhatsApp. You know exactly who answered, and the response ties back to their contact record. Use Personal mode for a single customer you have just served, and Bulk mode to survey a list you already have as a CSV.
Before you start
- You need Surveys access on the location you are sending from, and you must belong to the team that owns the channel you send through.
- At least one survey template must have Enable send surveys turned on. New templates have it off — see Creating survey templates.
- You need a working channel: SMS, Email, WhatsApp or WhatsApp Business.
- Sending WhatsApp Business invitations requires an approved WhatsApp template carrying a survey-typed dynamic link. See WhatsApp Business channel.
- Sending surveys requires a plan with surveys enabled. On other plans the Enable send surveys toggle is locked behind an upgrade prompt.
Where to find it
Surveys → Templates → Send surveys in the page header, or go to https://app.pluspoint.io/surveys/templates. The button opens the Send surveys drawer.
Send to one customer
- Go to Surveys → Templates and click Send surveys.
- Choose the Location. Only locations served by a sendable survey are listed.
- Choose the Survey. Only templates with Enable send surveys on appear.
- Choose the Channel. The list holds the outgoing-capable channels your teams can use, independently of which location you picked.
- Leave the mode on Personal.
- Enter the First name (optional) and the recipient’s contact detail — Email for an Email channel, Phone number in international format otherwise.
- Check the Subject (Email channels) and the Message. On a WhatsApp Business channel there is no message box — pick an approved Template instead.
- Click Send survey.
What each channel needs
| Channel | Recipient field | Message | Follow-ups |
|---|---|---|---|
| Email, valid format | Message, plus a required Subject | Supported | |
| SMS | Phone number, international format | Message | Supported |
| Phone number, international format | Message | Supported | |
| WhatsApp Business | Phone number, international format | An approved Template carrying a survey-typed dynamic link — no free-text box | Not sent on this channel |
Message placeholders
| Token | Resolves to |
|---|---|
[name] | The contact’s first name |
[last_name] | The contact’s last name |
[location] | The location name — or the brand title, on a brand template |
The survey link is appended by the platform, so you never type it. Any other [token] blocks the send with “Unsupported placeholder(s)” naming the offending tokens.
Send to a list of contacts
- Open the Send surveys drawer and set the Location, Survey and Channel as above.
- Switch the mode to Bulk. You can import up to 1,000 customers in one file; use the download sample file link for a template.
- Click Upload CSV file and pick your
.csv. - The Data verification window opens with the parsed rows. Check them, delete any row you do not want, and click Import.
- Check the Subject (Email channels) and the Message, or pick a WhatsApp Template.
- Click Send survey.
Every row in one bulk send must belong to the same location. To survey several locations, send once per location. Bulk mode is available on desktop only.
CSV columns
Use these exact headers:
| Header | Contents |
|---|---|
First_Name | Customer’s first name |
Last_Name | Customer’s last name |
Mobile_Number | Phone number in international format |
Email | Email address |
Instagram | Instagram profile |
Facebook | Facebook profile |
External_ID | Your own identifier for the customer, carried through to the response and the export |
Invalid rows are highlighted in red, and Import stays blocked until every remaining row is valid. Delete the bad rows, or fix the file and upload it again.
Two silent behaviours to expect. First, rows with no value in the field the channel actually needs — email for an Email channel, phone otherwise — are dropped. Second, duplicates on that field are collapsed to one recipient. A contact with both an email and a phone number receives a text message.
What happens after you click Send
Invitations are queued rather than fired instantly. For each recipient the platform:
- Finds or creates a contact, matching first on the channel’s delivery field and then on
External_ID. Missing names, emails, phone numbers, social profiles and external IDs are filled in on an existing contact. - Refuses to send to an unsubscribed contact.
- Applies the template’s Over-survey protection window and skips anyone inside it.
- Creates the invitation with its own link of the form
https://plsp.io/s/<identifier>, appended to your message. - Sends it, then records the result. A failed delivery is marked undelivered; a failed single manual send is rolled back along with any contact it just created.
- Logs a “Survey sent” activity on the contact, and “Survey reminder sent” for a follow-up.
Pacing you should plan around:
| Behaviour | Detail |
|---|---|
| Spacing | Messages on non-WhatsApp channels go out about 30 seconds apart |
| WhatsApp pacing | Messages on the WhatsApp channel are spaced roughly 30 to 60 seconds apart, and roll over to the next day after 200 messages |
| Duplicate suppression | An identical recipient already queued and unsent for the same template and channel is skipped |
A large bulk send therefore takes a while to land. That is expected, not a fault.
Automatic follow-ups
Turn on Send automatic follow-ups in the template’s Sharing tab, choose a Delay of 1 to 7 days, and write the Follow-up message. The platform checks every hour and sends the reminder when all of these hold:
- The original invitation was delivered and no follow-up has been sent yet.
- The chosen delay has passed, and no more than two further days have gone by. A reminder that misses that window is never sent.
- The recipient has never opened the survey.
- The channel still exists and is ready, and the contact is not unsubscribed.
Follow-ups are not sent on the WhatsApp Business channel.
Share the survey link yourself
Every template has a permanent survey URL you can put in a receipt, a signature or your own email tool. Copy it from Sharing → Survey URL.
| Template type | URL |
|---|---|
| Location template | https://plsp.io/q/<externalId> |
| Brand template | https://plsp.io/q/<externalId>:<locationId> — pick the location in the Location dropdown above the URL field before copying |
A brand URL without the location suffix works too; the respondent is asked Which location did you visit? before the survey renders.
Add query parameters to pre-fill what you already know. Anything you pass this way is hidden from the customer’s contact form and attached to their response.
| Parameter | Effect |
|---|---|
?id= | Attaches your external contact ID |
?email= | Pre-fills the email address |
?phone= | Pre-fills the phone number |
?rating= | Pre-selects a rating on the first step |
?language= | Forces the survey language |
Combine them with &, for example:
https://plsp.io/q/065e3a5f984?id=ID00012&email=john@example.com&phone=5511970496506
Other ways to send a survey
| Where | How |
|---|---|
| Inbox | Insert a survey chip into a conversation; the real link is generated when the message sends. Only templates with sending enabled are offered. See Using the Inbox |
| One-time campaigns | Choose a survey template as the campaign content. See One-time campaigns |
| Automations | Add a Send survey step to an automation. See Automating surveys |
| Public API | POST /surveys on the public API queues an invitation. See the API documentation |
| Zapier | Trigger a send from any connected app. See Zapier |
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Send surveys is greyed out | No template on the account has Enable send surveys on | Open a template’s Sharing tab and turn the toggle on |
| A location is missing from Location | No sendable survey serves that location | Create a template for it, or switch an existing one to the brand that covers it |
| A template is missing from Survey | Enable send surveys is off for it | Turn it on under Sharing |
| No channel to choose | You are not on a team that owns an outgoing-capable channel | Ask to be added to the channel’s team, or set up a channel |
| Import stays disabled in Data verification | Some rows are still invalid and highlighted red | Delete those rows, or fix the file and upload it again |
| ”Incorrect file format” on upload | The file is not a readable CSV | Re-export as .csv using the exact column headers above |
| Sending is blocked with “Unsupported placeholder(s)“ | The message contains a token other than [name], [last_name] and [location] | Delete the token. The survey link is added automatically |
| Fewer invitations went out than rows you imported | Rows with no value in the field the channel needs are dropped, duplicates are collapsed, unsubscribed contacts are refused, and Over-survey protection skips recent recipients | Check the template’s protection window and the contacts’ subscription status |
| Nothing arrives right after a bulk send | Invitations are queued and spaced about 30 seconds apart | Wait — a large batch takes time to work through |
| The Channel field clears itself after a failed send | The channel turned out to be disconnected or misconfigured, and was disabled | Reconnect the channel, then pick it again |
| No follow-up reminder was sent | The recipient opened the survey, the invitation was never delivered, more than two days have passed since the reminder became due, or the channel is WhatsApp Business | Check the delay setting; follow-ups are not supported on WhatsApp Business |
| A WhatsApp Business send never leaves | The chosen WhatsApp template is not yet in the registry, or is archived or otherwise ineligible | Wait for a pending template to register, or pick an approved one carrying a survey-typed dynamic link |