Feedback Channels

FlowOS collects customer feedback from multiple sources and converts each submission into a ticket automatically. Configure channels at Settings → Feedback Channels.

Portal

Every workspace gets a public customer portal at /p/<your-slug>. No setup required — it is live from day one. Customers can give feedback, submit requests, and track their cases. Go to Settings → Workspace → Workspace Slug to customise the URL.

Website Widget

Embed a floating feedback button on any external website with a single script tag.

  1. Go to Settings → Feedback Channels → Widget
  2. Customise the button label, colour, and position
  3. Copy the embed code and paste it before </body> on your website

Widget submissions arrive via POST /api/portal/submit and become tickets automatically. Rating ≤ 2 stars escalates the ticket to High priority.

WhatsApp

Any WhatsApp message sent to your business number becomes a ticket automatically.

  1. Create a Meta App with WhatsApp Business API and obtain your Phone Number ID and a Permanent Access Token
  2. Go to Settings → Feedback Channels → WhatsApp
  3. Enter your credentials and a Webhook Verify Token of your choice
  4. In Meta, set the webhook URL to https://api.flowos.io/api/webhooks/whatsapp and enter the same Verify Token
  5. Subscribe to the messages webhook field

Messages with negative sentiment are automatically created as High priority tickets.

Supported Providers

WhatsApp channel config supports two providers, chosen via the provider field under Settings → Feedback Channels → WhatsApp. Each provider has its own set of required credential fields, saved under the tenant's settings.whatsapp config:

ProviderRequired fields
Twilio (provider: "twilio")twilioAccountSid, twilioAuthToken, twilioPhoneNumber
Meta Cloud API (provider: "meta")phoneNumberId, accessToken, webhookVerifyToken

Optional fields shared by both providers: ownerAlertPhone / ownerPhoneNumber (where to send new-incident owner alerts), notifyOwnerOnNewIncident, autoDetectService, autoConvertIncident, autoReplyEnabled, autoReplyMessage (supports {{incident_number}}, {{service}}, and {{customer_name}} placeholders), defaultPriority, and defaultFeedbackType.

Account SID vs. API Key SID
Twilio's Account SID always starts with AC. A common misconfiguration is pasting an API Key SID instead — those start with SK and live under a different page in the Twilio Console. Saving a twilioAccountSid that starts with SK is rejected by PATCH /api/feedback/channel-config/whatsapp with:
Invalid Twilio Account SID (SK...): API Keys (starting with 'SK') cannot be used as Account SID. Please enter your Account SID (starting with 'AC') from your Twilio Console home page.Any other value that doesn't start with AC is also rejected, with a simpler Twilio Account SID must start with 'AC' message. Find the correct value under Account Info on the Twilio Console home page — not the API Keys page.

Google Reviews

FlowOS polls your Google Business listing and imports reviews automatically. Negative reviews (below your chosen threshold) create incidents.

  1. Enable the Places API in Google Cloud Console
  2. Create an API key with Places API access
  3. Find your Google Place ID using the Place ID Finder tool
  4. Go to Settings → Feedback Channels → Google Reviews
  5. Enter your Place ID and API key, set the threshold and poll frequency

Reviews at or below the threshold (default: 3 stars) automatically create a High priority incident. FlowOS polls on your configured interval and never creates duplicate records.

QR Code

Generate QR codes for physical locations (reception desk, product packaging, etc.). Each QR code links to a pre-filled feedback form. Go to Settings → Feedback Channels → QR Codes to generate and manage codes.

Automation Behaviour

ChannelPriority when negativeRouting rules applied
PortalHigh / Critical (very negative)Yes
WidgetHigh (≤ 2 stars)Yes
WhatsAppHigh (very negative sentiment)Yes
Google ReviewsHigh (below threshold)No
QR CodeCritical (very negative)Yes

Unresponded Feedback Escalation

FlowOS runs an escalation job every morning at 08:30 UTC. Any feedback ticket that is still open with no agent response after 2 days is automatically escalated toHigh priority.