Skip to main content Enter
ERP.AI Customer Feedback System

Customer Feedback System

Start now
Pricing Frequently asked questions Get started
Build with Proto

Modules

Survey designBuild CSAT, NPS and CES instruments with a clear scoring basis. Campaigns and deliveryReach eligible customers with approved surveys and controlled reminders. Response captureKeep completed answers valid, private and connected to the survey customers received.
Customer follow-upGive attributable low scores an owner, due date and reviewed outcome. Feedback analyticsRead CSAT, NPS and CES with the population and scoring rules behind each result. Themes and experimentsLearn from customer comments and test survey wording on a stable basis.

Customer Feedback System

Start now
Pricing Frequently asked questions Get started
Build with Proto

Processes

Survey to approved campaignPublish the instrument and approve the exact campaign before launch. Event to accepted responseDeliver an eligible invitation and accept one valid response.
Low score to reviewed follow-upAssign attributable customer outreach and independently review the result. Feedback to comparable insightCombine trustworthy metrics, customer themes and controlled experiments.

Customer Feedback System

Start now
Pricing Frequently asked questions Get started
Build with Proto

Industries

Subscription businessesConnect onboarding effort, relationship health and customer recovery. Customer support teamsUnderstand interaction satisfaction without losing team and customer boundaries.
Commerce and service businessesCollect checkout, service and custom feedback at a useful point in the customer journey.

Customer Feedback System

Start now
Pricing Frequently asked questions Get started
Build with Proto

Reference

Roles and permissionsGive each team the customer insight and decisions it owns. Reports and analyticsRead the metric, sample and population behind customer feedback. Data modelKeep survey instruments, invitations, responses and follow-up evidence aligned.
IntegrationsConnect customer identity, event triggers and delivery with explicit ownership. ImplementationConfigure the survey moments, people and controls your program needs. Agent referenceUse Proto to configure surveys, delivery controls and customer follow-up.

Customer Feedback System

Start now
Pricing Frequently asked questions Get started
Build with Proto
All systems
Modules
Survey designBuild CSAT, NPS and CES instruments with a clear scoring basis.Campaigns and deliveryReach eligible customers with approved surveys and controlled reminders.Response captureKeep completed answers valid, private and connected to the survey customers received.Customer follow-upGive attributable low scores an owner, due date and reviewed outcome.Feedback analyticsRead CSAT, NPS and CES with the population and scoring rules behind each result.Themes and experimentsLearn from customer comments and test survey wording on a stable basis.
Processes
Survey to approved campaignPublish the instrument and approve the exact campaign before launch.Event to accepted responseDeliver an eligible invitation and accept one valid response.Low score to reviewed follow-upAssign attributable customer outreach and independently review the result.Feedback to comparable insightCombine trustworthy metrics, customer themes and controlled experiments.
Industries
Subscription businessesConnect onboarding effort, relationship health and customer recovery.Customer support teamsUnderstand interaction satisfaction without losing team and customer boundaries.Commerce and service businessesCollect checkout, service and custom feedback at a useful point in the customer journey.
Reference
Roles and permissionsGive each team the customer insight and decisions it owns.Reports and analyticsRead the metric, sample and population behind customer feedback.Data modelKeep survey instruments, invitations, responses and follow-up evidence aligned.IntegrationsConnect customer identity, event triggers and delivery with explicit ownership.ImplementationConfigure the survey moments, people and controls your program needs.Agent referenceUse Proto to configure surveys, delivery controls and customer follow-up.
Sign in
Sign in Start now
Customer Feedback System References
Data model3 of 6
  • Roles and permissions1 of 6
  • Reports and analytics2 of 6
  • Data model3 of 6
  • Integrations4 of 6
  • Implementation5 of 6
  • Agent reference6 of 6

Data model

Keep survey instruments, invitations, responses and follow-up evidence aligned.

28 tables · 57 relationships

Data model 28 tables
mastertransactionline item SurveyTemplates.SurveyType → SurveyTypes SurveyTemplates.Owner → Employees SurveyTemplates.PrimaryMetricQuestion → SurveyQuestions SurveyAudiences.Owner → Employees SurveyDeliveryRules.Campaign → SurveyCampaigns Customers.AccountOwner → Employees Cohorts.Owner → Employees SurveyCampaigns.SurveyType → SurveyTypes SurveyCampaigns.Template → SurveyTemplates SurveyCampaigns.Audience → SurveyAudiences SurveyCampaigns.Owner → Employees SurveyInvitations.Campaign → SurveyCampaigns SurveyInvitations.Customer → Customers SurveyInvitations.RelatedAgent → Employees SurveyInvitations.Instrument → SurveyTemplates SurveyInvitations.ABTest → SurveyABTests SurveyResponses.Invitation → SurveyInvitations SurveyResponses.Campaign → SurveyCampaigns SurveyResponses.Customer → Customers SurveyResponses.RelatedAgent → Employees SurveyResponses.Instrument → SurveyTemplates NPSScores.Campaign → SurveyCampaigns CSATScores.Campaign → SurveyCampaigns CESScores.Campaign → SurveyCampaigns CESScores.Instrument → SurveyTemplates CohortMembers.Cohort → Cohorts CohortMembers.Customer → Customers Trends.Campaign → SurveyCampaigns Trends.Instrument → SurveyTemplates Comments.Response → SurveyResponses Comments.Question → SurveyQuestions Comments.PrimaryTheme → Themes Comments.Customer → Customers Comments.RelatedAgent → Employees Followups.Response → SurveyResponses Followups.Customer → Customers Followups.Owner → Employees OptOuts.Customer → Customers SurveyABTests.Campaign → SurveyCampaigns SurveyABTests.VariantATemplate → SurveyTemplates SurveyABTests.Owner → Employees SubmissionReceipts.Invitation → SurveyInvitations SubmissionReceipts.Response → SurveyResponses DeliveryAttempts.Invitation → SurveyInvitations SurveyChoices.Question → SurveyQuestions SurveyQuestions.Template → SurveyTemplates SurveyAudienceRules.Audience → SurveyAudiences ResponseAnswers.Response → SurveyResponses ResponseAnswers.Question → SurveyQuestions ResponseAnswers.SelectedChoice → SurveyChoices SurveyTypesmasterTypeCodeNameCategory SurveyTemplatesmasterTemplateCodeStatusSurveyType SurveyAudiencesmasterAudienceCodeOwnerName SurveyDeliveryRulesmasterRuleCodeCampaignPostInteractionDelayMinutes CustomersmasterCustomerNumberAccountOwnerName NPSCategoriesmasterCategoryCodeNameMinScore CohortsmasterCohortCodeOwnerName ThemesmasterThemeCodeParentThemeThemeName BenchmarkDatamasterBenchmarkCodeProviderIndustry EmployeesmasterEmployeeNumberManagerPrincipalID SurveyCampaignstransactionCampaignNumberStatusSurveyType SurveyInvitationstransactionInvitationNumberStatusCampaign SurveyResponsestransactionResponseNumberStatusInvitation NPSScorestransactionStatusCampaignPeriod CSATScorestransactionStatusCampaignPeriod CESScorestransactionStatusCampaignInstrument CohortMemberstransactionStatusCohortCustomer TrendstransactionCampaignInstrumentPeriod CommentstransactionResponseQuestionPrimaryTheme FollowupstransactionFollowupNumberStatusResponse OptOutstransactionCustomerScopeSource SurveyABTeststransactionTestCodeStatusCampaign SubmissionReceiptstransactionReceiptNumberStatusInvitation DeliveryAttemptstransactionAttemptNumberStatusInvitation SurveyChoiceslineQuestionSequenceChoiceText SurveyQuestionslineTemplateSequencePrompt SurveyAudienceRuleslineAudienceSequenceAttributeType ResponseAnswerslineResponseQuestionSelectedChoice
Data modelTable names and relationships

How the model is organised

Survey instruments

SurveyTypes, SurveyTemplates, SurveyQuestions, SurveyChoices, NPSCategories. Published instruments freeze wording, choices and the score basis.

  • SurveyTypes
  • SurveyTemplates
  • SurveyQuestions
  • SurveyChoices
  • NPSCategories

Campaign audiences and delivery

SurveyCampaigns, SurveyAudiences, SurveyAudienceRules, SurveyDeliveryRules, SurveyInvitations, DeliveryAttempts, OptOuts. Campaign approval, occurrence identity and current preferences govern each dispatch.

  • SurveyCampaigns
  • SurveyAudiences
  • SurveyAudienceRules
  • SurveyDeliveryRules
  • SurveyInvitations
  • DeliveryAttempts
  • OptOuts

Identity and accepted answers

Customers, Employees, SurveyResponses, ResponseAnswers, SubmissionReceipts. Identity mirrors remain read-only; the private receipt ledger is unavailable to staff and anonymous projections.

  • Customers
  • Employees
  • SurveyResponses
  • ResponseAnswers
  • SubmissionReceipts

Metric and cohort evidence

NPSScores, CSATScores, CESScores, Cohorts, CohortMembers, Trends, BenchmarkData. Each population retains its instrument, period and membership basis.

  • NPSScores
  • CSATScores
  • CESScores
  • Cohorts
  • CohortMembers
  • Trends
  • BenchmarkData

Insight and action

Themes, Comments, Followups, SurveyABTests. Masked themes, attributable outreach and fixed-basis wording tests use the accepted response evidence.

  • Themes
  • Comments
  • Followups
  • SurveyABTests

Keys and references

Use same-tenant references throughout. Invitation uniqueness includes campaign, customer and occurrence; accepted submission is unique per invitation. Delivery attempts keep their original request identity. Published instruments and full analytical population keys prevent later edits from rewriting prior evidence. Private submission correlation is inaccessible to staff roles.

Migration order

  1. 1 Configure authenticated staff and trusted customer mirrors; reconcile external identifiers and ownership.
  2. 2 Load survey taxonomy, draft templates, questions and choices; publish tested immutable versions.
  3. 3 Configure audiences, delivery policies, current suppression and independent campaign approval.
  4. 4 Enable governed invitation dispatch and validated response capture with restricted receipts.
  5. 5 Configure scoped follow-ups, masked themes, score populations, versioned cohorts and experiments.

Tables

28 tables
SurveyTypesThe canonical taxonomy of survey instruments the org runs.master
FieldTypeRequiredDetails
TypeCodetextyese.g. CSAT-PostInteraction
Nametextyes
CategoryselectyesCSAT, NPS, CES, ProductFeedback, Custom
TriggerStyleselectyesEventDriven, Scheduled, Manual
DefaultScaleselectyesLikert1to5, Likert1to7, NPS0to10, EmojiFace, CES1to7
AnonymousByDefaultbooleanNPS often false (attributable); ProductFeedback often true
Descriptiontext
Activebooleanyes
SurveyTemplatesReusable question banks. One template per SurveyType permaster
FieldTypeRequiredDetails
TemplateCodetextyes
Nametextyes
SurveyTypereferenceyes→ SurveyTypes
VersionnumberyesIncrement on question changes
ScaleStyleselectyesLikert1to5, Likert1to7, NPS0to10, EmojiFace, CES1to7
TranslatablebooleanIf true, Questions carry locale variants
QuestionCountformulayesfx: COUNT(SurveyQuestions where Template = self)
Activebooleanyes
Ownerreferenceyes→ Employees (Survey Author or CX Manager)
Descriptiontext
StatusselectyesDraft, Published, Retired
ContentHashtextServer hash of the exact questions, choices, branching and scoring rules
PublishedAtdatetimePublishing freezes this row and its child questions/choices
PrimaryMetricQuestionreference→ SurveyQuestions — same Template; one primary question for each metric instrument
MinimumScorenumberFrozen validated metric range
MaximumScorenumberFrozen validated metric range
FavourableMinimumnumberFrozen favourable range for CSAT
EffortDirectionselectLowerIsEasier, HigherIsEasier
SurveyQuestionsThe per-template question grain. Carries the prompt, the Line item of SurveyTemplates.line item
FieldTypeRequiredDetails
Templatereferenceyes→ SurveyTemplates
SequencenumberyesDisplay order
Prompttextyes
QuestionTypeselectyesRating, NPS, CES, MultiChoice, MultiSelect, FreeText, YesNo
Requiredbooleanyes
BranchLogictexte.g. "show_if Q1 <= 6" — interpreted by render engine
HelpTexttext
ReverseScoredbooleanTrue when high score = negative sentiment
SurveyChoicesThe selectable options for `QuestionType IN (MultiChoice, Line item of SurveyQuestions.line item
FieldTypeRequiredDetails
Questionreferenceyes→ SurveyQuestions
Sequencenumberyes
ChoiceTexttextyes
ChoiceValuetextValue sent in ResponseAnswers (defaults to ChoiceText)
ScoreWeightnumberOptional numeric score for this choice
SurveyCampaignsA specific deployed campaign — for example "Q1 2026 Emailtransaction
FieldTypeRequiredDetails
CampaignNumbertextyes
CampaignNametextyes
SurveyTypereferenceyes→ SurveyTypes
Templatereferenceyes→ SurveyTemplates — exact approved immutable instrument version
TriggerTypeselectyesPostTicket, PostOnboarding, PostPurchase, PostRenewal, Quarterly, Manual
Audiencereference→ SurveyAudiences (null for event-driven all-eligible)
StartDatedateyes
EndDatedateNull for always-on event-driven
StatusselectyesDraft, PendingApproval, ChangesRequested, Scheduled, Active, Paused, Closed, Archived
AnonymousModebooleanSnapshot of SurveyType default at launch
PIIMaskOnDisplaybooleanStrip emails / phones / cards from displayed comments
InvitedCountnumberyesService snapshot: distinct provider-accepted invitations with SentAt <= MeasurementAsOf minus ResponseLagHours; same campaign occurrence population as RespondedCount
RespondedCountnumberyesService snapshot: Accepted responses received by MeasurementAsOf for the exact InvitedCount population; excludes Invalidated even if invitation remains Responded
ResponseRateformulayesfx: IF(InvitedCount = 0, null, RespondedCount / InvitedCount) — fractions; display as percent
Ownerreferenceyes→ Employees (CX Manager)
LaunchedAtdate
ClosedAtdate
RevisionnumberyesIncrement for audience, instrument, privacy, timing or delivery policy changes
SubmittedByreference→ Employees — authenticated principal mapping
SubmittedRevisionnumberExact revision sent for review
ApprovedByreference→ Employees — CX Manager distinct from SubmittedBy
ApprovedRevisionnumberMust equal Revision at activation
ApprovedAtdatetimeRecorded only by approval command
AudienceSnapshotAtdatetimeEligible audience resolution basis
MeasurementAsOfdatetimeCutoff for the last paired invited/responded snapshot
ResponseLagHoursnumberyesApproved nonnegative maturation interval; change creates a new comparison basis
MinimumAggregateSizenumberyesConfigured suppression threshold for anonymous slices; at least 5
DeliveryPolicyVersiontextyesFrozen send policy; current opt-outs always take precedence
SurveyAudiencesThe named definition of who a campaign goes to — "Allmaster
FieldTypeRequiredDetails
AudienceCodetextyes
Nametextyes
TypeselectyesAllCustomers, SegmentRule, UploadedList, EventBased
Descriptiontext
ResolvedHeadcountnumberLast computed at use
LastResolvedAtdate
Ownerreferenceyes→ Employees (CX Manager)
Activebooleanyes
SurveyAudienceRulesThe per-rule grain for `SurveyAudiences.Type = SegmentRule` Line item of SurveyAudiences.line item
FieldTypeRequiredDetails
Audiencereferenceyes→ SurveyAudiences
Sequencenumberyes
AttributeTypeselectyesSegment, Plan, Region, Tenure, Industry, AccountOwner, Channel, LifecycleStage
OperatorselectyesEquals, NotEquals, In, NotIn, GreaterThan, LessThan, Between
AttributeValuetextyesValue matched against the Customer field implied by AttributeType (e.g. plan name, region code, tenure band, lifecycle stage). Acceptable as text because the value is interpreted per-row and doesn't need referential integrity to a master table.
IncludeOrExcludeselectyesInclude, Exclude
SurveyDeliveryRulesPer-Campaign delivery governance — when to send relative tomaster
FieldTypeRequiredDetails
RuleCodetextyes
Campaignreferenceyes→ SurveyCampaigns
PostInteractionDelayMinutesnumbere.g. 60 — wait an hour after Ticket close
MaxFrequencyPerCustomerDaysnumberyese.g. 30 — at most one survey per customer per 30 days
ChannelPreferenceselectyesEmail, SMS, InApp, EmailThenSMS, EmailThenInApp
ReminderEnabledboolean
ReminderDelayDaysnumbere.g. 3
MaxRemindersnumbere.g. 1
RespectOptOutsbooleanyesAlways true; explicit for audit
Activebooleanyes
MirrorMaxAgeHoursnumberyesHold pending recipients when CRM identity/contact snapshot is older
TokenLifetimeHoursnumberyesPositive response-link lifetime bounded by campaign end
PolicyVersiontextyesImmutable approved policy version
CustomersRead-only mirror of the CRM Pipeline `Accounts` / `Contacts`master
FieldTypeRequiredDetails
CustomerNumbertextyesCRM-side stable ID
Nametextyes
EmailtextMasked except to send-side roles
PhonetextMasked
SegmentselectEnterprise, MidMarket, SMB, SelfServe
Plantext
RegionselectNorthEast, SouthEast, Midwest, SouthWest, West
StatetextUS state code
Industrytext
AccountOwnerreference→ Employees (Account Manager / CSM)
LifecycleStageselectOnboarding, Active, AtRisk, Churned
TenureMonthsnumberComputed from FirstPurchaseDate
FirstPurchaseDatedate
LastSyncedAtdateyes
Activebooleanyes
SurveyInvitationsOne row per Customer, SurveyCampaign and OccurrenceKey. The dedupe + audittransaction
FieldTypeRequiredDetails
InvitationNumbertextyes
Campaignreferenceyes→ SurveyCampaigns
Customerreferenceyes→ Customers
ChannelselectyesEmail, SMS, InApp
EmailReftextProvider-side message ID for delivery webhook join
SMSReftextProvider-side message ID for SMS webhook join
TokenHashtextyesHash of a random response credential; never expose raw token in staff views or logs
RelatedTickettextHelpdesk Ticket ID for PostTicket campaigns
RelatedAgentreference→ Employees — the agent who handled the ticket
RelatedFlowtextFor CES — onboarding step / renewal event ID
StatusselectyesQueued, Sending, Sent, Opened, Responded, Bounced, Suppressed, Expired, Failed, Unknown
SentAtdatetime
OpenedAtdatetime
RespondedAtdatetime
ReminderCountnumber
LastReminderAtdatetime
SuppressedReasonselectOptOut, FrequencyCap, Bounce, InvalidContact
OccurrenceKeytextyesStable source event ID or campaign-period identity; unique with Campaign and Customer per tenant
ScheduledSendAtdatetimeyesEarliest intended send, not proof of delivery
ExpiresAtdatetimeyesEnforced by response submission
Instrumentreferenceyes→ SurveyTemplates — exact published version assigned to invitation
ABTestreference→ SurveyABTests — same Campaign
VariantselectA, B
DispatchKeytextyesStable initial delivery request; reminders use numbered attempt keys
AttemptNumbernumberyesDurable dispatch attempt sequence
LastProviderEventKeytextCorrelated callback identity; duplicates ignored
SourceSystemtextOrigin for RelatedTicket / RelatedFlow references
SurveyResponsesOne row per completed SurveyInvitation. The header for thetransaction
FieldTypeRequiredDetails
ResponseNumbertextyes
Invitationreference→ SurveyInvitations — null for anonymous responses; private SubmissionReceipts owns service correlation
Campaignreferenceyes→ SurveyCampaigns
Customerreference→ Customers — null when Anonymous; staff never infer it through private submission receipts
AnonymousbooleanyesSnapshot at submit
RespondedAtdatetimeyes
ResponseTimeSecondsnumberFrom OpenedAt to submit
RelatedTickettextSnapshot
RelatedAgentreference→ Employees (snapshot)
ChannelselectyesEmail, SMS, InApp, Portal
SegmentselectSnapshot of Customer.Segment
RegionselectSnapshot of Customer.Region
PlantextSnapshot of Customer.Plan
SourceselectyesEmail, SMS, Portal, InAppWidget
Instrumentreferenceyes→ SurveyTemplates — immutable assigned version
RelatedFlowtextAttributable responses only; null for anonymous capture
StatusselectyesAccepted, Invalidated
InvalidatedReasontextCX Manager controlled quality decision; original answer history retained
SubmittedKeytextyesOpaque random receipt identifier, not invitation token or customer ID
ResponseAnswersThe exploded per-question answer grain. One row per question Line item of SurveyResponses.line item
FieldTypeRequiredDetails
Responsereferenceyes→ SurveyResponses
Questionreferenceyes→ SurveyQuestions
NumericValuenumberFor Rating / NPS / CES / YesNo (1/0)
FreeTextValuetextFor FreeText answers
SelectedChoicereference→ SurveyChoices (set for MultiChoice / MultiSelect; null for FreeText / Rating / NPS / CES). MultiSelect questions explode into one ResponseAnswers row per chosen choice.
Skippedboolean
NPSCategoriesThe Detractor / Passive / Promoter classification thresholds.master
FieldTypeRequiredDetails
CategoryCodetextyesDetractor, Passive, Promoter
Nametextyes
MinScorenumberyesInclusive
MaxScorenumberyesInclusive
ColorHextextFor dashboard rendering
Activebooleanyes
DisplayOrdernumber
NPSScoresThe NPS roll-up grain. One row per Period × Audience scope celltransaction
FieldTypeRequiredDetails
Campaignreferenceyes→ SurveyCampaigns
Periodtextyese.g. 2026-Q1, 2026-04
ScopeTypeselectyesOrg, Segment, Region, Plan, AccountOwner, Industry
ScopeKeytextyesSegment name, region code, plan name, AccountOwner EmployeeID, etc.
RespondentCountnumberyes
Promotersnumberyes
Passivesnumberyes
Detractorsnumberyes
NPSScoreformulayesfx: IF(RespondentCount = 0, null, ((Promoters − Detractors) / RespondentCount) × 100)
PriorPeriodNPSnumberFor trend
StatusselectyesComputed, Published, Recomputing
ComputedAtdateyes
CSATScoresThe CSAT roll-up grain. One row per Period × Channel scopetransaction
FieldTypeRequiredDetails
Campaignreferenceyes→ SurveyCampaigns
Periodtextyes
ScopeTypeselectyesOrg, Channel, Agent, AgentTeam, Segment, Region
ScopeKeytextyes
RespondentCountnumberyes
AverageRatingnumberyes
Top2BoxPctnumberyesPercent at top 2 of scale
Bottom2BoxPctnumberyesPercent at bottom 2 of scale
ResponseRatePctnumber
PriorPeriodAveragenumber
StatusselectyesComputed, Published, Recomputing
ComputedAtdateyes
CESScoresThe CES roll-up grain. One row per Period × Flow. CES is thetransaction
FieldTypeRequiredDetails
Campaignreferenceyes→ SurveyCampaigns
Periodtextyes
FlowselectyesOnboarding, Renewal, SupportResolution, ProductCheckout, Other
ScopeKeytextOptional sub-scope (e.g. specific onboarding step)
RespondentCountnumberyes
AverageEffortnumberyesRaw mean on the frozen instrument scale; show EffortDirection alongside it
Instrumentreferenceyes→ SurveyTemplates — exact compatible scale and polarity
EffortDirectionselectyesLowerIsEasier, HigherIsEasier — frozen from Instrument
LowEffortPctnumberEasy share: scores1–2 when LowerIsEasier,6–7 when HigherIsEasier
HighEffortPctnumberDifficult share: scores6–7 when LowerIsEasier,1–2 when HigherIsEasier
PriorPeriodEffortnumber
StatusselectyesComputed, Published, Recomputing
ComputedAtdateyes
CohortsNamed segmentation cohorts for analysis — "New customers inmaster
FieldTypeRequiredDetails
CohortCodetextyes
Nametextyes
DefinitionDescriptiontextHuman-readable rule
MemberCountSnapshotnumberLast computed
LastComputedAtdate
Ownerreferenceyes→ Employees (Analyst or CX Manager)
Activebooleanyes
DefinitionVersionnumberyesImmutable rule version for each membership snapshot
RuleExpressiontextyesValidated deterministic customer-attribute predicate
CohortMembersComputed memberships. One row per Customer per Cohort pertransaction
FieldTypeRequiredDetails
Cohortreferenceyes→ Cohorts
Customerreferenceyes→ Customers
ComputedAtdateyes
EnteredAtdateFirst time the customer matched the cohort
ExitedAtdateIf known to no longer match
StatusselectyesActive, Exited
DefinitionVersionnumberyesSnapshot of Cohorts.DefinitionVersion
TrendsThe time-series snapshot grain — one row per Period × Metrictransaction
FieldTypeRequiredDetails
Periodtextyes
MetricselectyesNPS, CSAT, CES, ResponseRate, DetractorPct, PromoterPct
ScopeTypeselectyesOrg, Channel, Segment, Region, Plan, Agent, AgentTeam, Cohort, Industry
ScopeKeytextyes
ValuenumberyesSame units as the compatible metric: NPS points, CSAT/CES raw instrument mean, ResponseRate fraction 0–1, DetractorPct/PromoterPct percent 0–100
RespondentCountnumber
BenchmarknumberSame metric units, instrument scale/polarity and compatible population from BenchmarkData when available
VariancenumberValue − Benchmark
ComputedAtdateyes
CompoundKeyformulayesfx: PopulationKey — upsert at the full campaign, instrument and cohort basis; never overwrite another program
Campaignreferenceyes→ SurveyCampaigns
Instrumentreferenceyes→ SurveyTemplates — compatible scoring version
CohortSnapshotAtdatetimeExplicit membership basis when ScopeType = Cohort
PopulationKeytextyesCampaign, instrument, period, metric, scope and cohort version; unique per tenant
ThemesAuto-classified or manually tagged comment themes frommaster
FieldTypeRequiredDetails
ThemeCodetextyes
ThemeNametextyese.g. ProductIssue, AgentBehavior, WaitTime, Pricing, Onboarding, FeatureRequest, Billing
ParentThemereference→ Themes (self) — for hierarchical taxonomy
SentimentselectPositive, Neutral, Negative, Mixed
MentionCountnumberRolling-90-day count, recomputed nightly
Descriptiontext
Activebooleanyes
CommentsThe surface for raw FreeText answers — one row per non-emptytransaction
FieldTypeRequiredDetails
Responsereferenceyes→ SurveyResponses
Questionreferenceyes→ SurveyQuestions
RawTexttextyesOriginal — masked except to roles with raw access
MaskedTexttextPII-stripped rendering — emails / phones / cards scrubbed
SentimentselectPositive, Neutral, Negative, Mixed
PrimaryThemereference→ Themes
SecondaryThemereference→ Themes
ClassifiedByselectAI, Manual, Hybrid
Customerreference→ Customers (null when Anonymous)
RelatedAgentreference→ Employees
FollowupsDetractor close-the-loop tasks. Created automatically bytransaction
FieldTypeRequiredDetails
FollowupNumbertextyes
Responsereferenceyes→ SurveyResponses
Customerreferenceyes→ Customers
Ownerreference→ Employees — eligible Account Manager; null stays Unassigned for CX Manager routing
TriggerScorenumberThe numeric NPS / CSAT score that triggered
TriggerReasonselectyesNPSDetractor, CSATBottom2Box, CESHighEffort, ManualEscalation
DueDatedateyes
StatusselectyesUnassigned, Open, InProgress, ManagerReview, Resolved, Cancelled
ResolutionNotestextWhat the AccountManager did and what the customer said
OutcomeCategoryselectResolved, NotReachable, EscalatedToProduct, ChurnRisk, Recovered
ResolvedAtdate
CreatedAtdateyes
PreviousFollowupreference→ Followups — completed predecessor for an explicitly requested later conversation
ConversationSequencenumberyesInitial trigger creates0; CX Manager continuation atomically allocates next sequence
ContinuationKeytextUnique same-tenant command identity for an explicit later conversation
RevisionnumberyesCurrent outreach/review revision
SubmittedByreference→ Employees — authenticated owner submitting outcome
ReviewedByreference→ Employees — CX Manager, distinct from owner and submitter
ReviewedAtdatetimeDecision on exact submitted outcome revision
ReviewedRevisionnumberPrevent stale decision from closing changed outreach
BenchmarkDataIndustry-vertical benchmark imports (e.g. SaaS-Industry-NPS,master
FieldTypeRequiredDetails
BenchmarkCodetextyes
Providertextyes
Industrytextyes
MetricselectyesNPS, CSAT, CES, ResponseRate
Periodtextyes
ValuenumberyesNPS points, CSAT/CES raw compatible instrument mean, or ResponseRate fraction 0–1; never compare values with different metric units
SampleSizenumber
ImportedAtdateyes
Activebooleanyes
OptOutsSurvey-suppression registry. One row per Customer per Scopetransaction
FieldTypeRequiredDetails
Customerreferenceyes→ Customers
ScopeselectyesAllSurveys, NPSOnly, CSATOnly, CESOnly, Marketing
SourceselectyesUnsubscribeLink, SMSStopReply, ManualOptOut, BounceHardFail, PrivacyRequest
OptOutAtdateyes
OptOutChannelselectEmail, SMS, Portal, Phone
Notestext
Activebooleanyes
SurveyABTestsA/B test configurations for survey wording. Splits atransaction
FieldTypeRequiredDetails
TestCodetextyes
Campaignreferenceyes→ SurveyCampaigns
VariantATemplatereferenceyes→ SurveyTemplates
VariantBTemplatereferenceyes→ SurveyTemplates
SplitPercentAnumberyesDefault 50
MinSampleSizenumberyesPer variant
StartDatedateyes
EndDatedate
StatusselectyesDraft, Running, Paused, Concluded, Cancelled
WinnerVariantselectA, B, NoSignificantDifference
Hypothesistext
ResulttextPlain-language summary at conclusion
Ownerreferenceyes→ Employees (Survey Author)
AnalysisMethodtextyesPrespecified comparison and decision rule, with confidence/significance basis
MetricselectyesResponseRate, AverageScore
AnalysisVersiontextyesLocked before assignment; basis retained in results
AllocationSaltVersiontextyesStable server assignment basis; no reshuffle on retry
EmployeesRead-only identity mirror for the app's authenticated staff. Tenant plus PrincipalID resolves exactly one active employee; CRM account owners and support agents map to this same directory. Admin may configure the trusted connector but cannot forge principal membership.master
FieldTypeRequiredDetails
EmployeeNumbertextyesUnique stable source identity per tenant
PrincipalIDtextyesServer-authenticated principal mapping; unique per tenant
NametextyesDisplay name
Managerreference→ Employees — effective support-team manager
TeamCodetextScoped support-team identity
ActivebooleanyesInactive principals cannot receive work
LastSyncedAtdatetimeyesTrusted source timestamp
SubmissionReceiptsPrivate service-owned correlation ledger. No listed staff role, including Admin, can list, export, traverse or query these rows or join anonymous responses back to recipients. Only the authenticated submission service uses it to atomically enforce one completed response per invitation. Privacy retention limits and separate delivery-service access apply; anonymous business data is non-attributable, not a claim that the delivery service never processed identity.transaction
FieldTypeRequiredDetails
ReceiptNumbertextyesRandom opaque identifier
Invitationreferenceyes→ SurveyInvitations — unique accepted receipt per invitation
Responsereferenceyes→ SurveyResponses — one accepted result
CommandKeytextyesUnique tenant and invitation submission command
PayloadHashtextyesReject changed payload under a repeated command key
StatusselectyesAccepted, Invalidated
AcceptedAtdatetimeyesSame transaction as answers and invitation Responded transition
DeliveryAttemptsService-owned delivery outbox and callback ledger. Each initial send or reminder keeps its request identity through uncertain provider responses. Staff see delivery status under recipient permissions; they cannot fabricate provider acknowledgments.transaction
FieldTypeRequiredDetails
AttemptNumbertextyesHuman reference
Invitationreferenceyes→ SurveyInvitations
RequestKeytextyesUnique tenant, invitation and reminder sequence
PayloadHashtextyesFrozen request fingerprint
ReminderSequencenumberyesZero for initial delivery
ScheduledAtdatetimeyesRequested execution time
StatusselectyesQueued, Sending, Accepted, Failed, Unknown, Suppressed
ProviderReftextAcknowledged provider result
LastEventKeytextVerified provider callback identity
AcceptedAtdatetimeConfirmed provider acceptance
ERP•AI workspace

Start now Customer Feedback System

Create your ERP.AI account and get started with Proto.

Start now Download agent
Previous · reference 2 of 6Reports and analyticsNext · reference 4 of 6Integrations

Customize Customer Feedback System. With Proto, your desktop AI agent.

Ask Proto to help you customize Customer Feedback System.

Customize
Customer Feedback System.
Ask: “Adapt Survey design.”
ProtoYour desktop AI agent
Download nowFree install · ~1 GB · AI usage extra
macOSWindowsLinux

Bring your first idea to Proto.

Keep this page open while you install Proto. Connect your account and model, then paste this into a new chat.

AI usage is paid separately. You can edit the prompt before copying.

ERP.AI

Business apps and the Proto desktop agent.

  • Business Apps
  • Proto
  • Workflows
  • Headless SaaS
  • Enterprise
  • Pricing
  • Contact
  • Terms of Service
  • Privacy Policy
  • Cookie Policy
© 2026 ERP•AI. All rights reserved.
System status

Your Privacy, Your Choice

We use essential cookies to run the site and optional cookies for features, analytics, and relevant content. See Cookie policy

Manage Your Cookie Preferences

We use cookies to enhance your experience, analyze site traffic, and serve relevant content. By clicking "Accept All," you agree to our use of cookies. You can customize your preferences at any time.

Learn more about how we use cookies

These cookies are required for the website to function properly. They ensure security, enable basic features like page navigation, and store user session data. You cannot disable these cookies.

These cookies enable additional features that enhance your experience, such as live chat, video playback, personalized content recommendations, and remembering user preferences.

These cookies help us understand how visitors interact with our site by collecting anonymous usage data. This allows us to measure performance, detect issues, and continuously improve the user experience.

These cookies allow us and advertising partners, including X, to deliver ads tailored to your interests. They track browsing habits across sites to provide relevant advertising and measure ad effectiveness.