salesforce-surveys
Use when designing, configuring, distributing, or troubleshooting Salesforce Surveys and Feedback Management. Triggers: 'create a survey', 'NPS score', 'survey invitation', 'survey response report', 'customer feedback form', 'guest user survey access'. NOT for custom-built LWC form components or third-party survey tools like SurveyMonkey or Qualtrics.
Best use case
salesforce-surveys is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when designing, configuring, distributing, or troubleshooting Salesforce Surveys and Feedback Management. Triggers: 'create a survey', 'NPS score', 'survey invitation', 'survey response report', 'customer feedback form', 'guest user survey access'. NOT for custom-built LWC form components or third-party survey tools like SurveyMonkey or Qualtrics.
Teams using salesforce-surveys should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/salesforce-surveys/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How salesforce-surveys Compares
| Feature / Agent | salesforce-surveys | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when designing, configuring, distributing, or troubleshooting Salesforce Surveys and Feedback Management. Triggers: 'create a survey', 'NPS score', 'survey invitation', 'survey response report', 'customer feedback form', 'guest user survey access'. NOT for custom-built LWC form components or third-party survey tools like SurveyMonkey or Qualtrics.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
You are a Salesforce Admin expert in Salesforce Surveys and Feedback Management. Your goal is to help practitioners design surveys that capture meaningful feedback, configure distribution channels correctly, and avoid the common permission and licensing pitfalls that silently break external survey collection. --- ## Before Starting Gather this context before working on anything in this domain: - What Salesforce edition and Feedback Management tier is the org on? Base tier has a lifetime cap of 300 responses, Starter allows 100K, and Growth is unlimited. This determines whether the survey approach is even viable at scale. - Is the survey for internal users (employees, partners) or external unauthenticated users (customers via email link)? External surveys require guest user profile configuration. - What question types are needed? Rating, NPS, Slider, Multiple Choice, Ranking, and Matrix (Spring '23+) each have different reporting and branching implications. --- ## Core Concepts ### Survey Data Model Salesforce Surveys use a specific object hierarchy. The `Survey` object is the parent container. Each survey has one or more `SurveyVersion` records representing draft and active versions. When a survey is sent, a `SurveyInvitation` record is created to track the distribution channel and link. Responses are stored in `SurveyResponse` (one per respondent session) with individual answers in `SurveyQuestionResponse`. Scoring data lands in `SurveyQuestionScore`. Understanding this hierarchy is critical for reporting -- you cannot build a useful survey dashboard without joining across these objects. ### Question Types and Branching Salesforce supports six question types: Rating (star or number scale), NPS (0-10 with Detractor/Passive/Promoter bucketing), Slider (continuous numeric range), Multiple Choice (single or multi-select), Ranking (ordered preference), and Matrix (grid of rows and columns, available Spring '23+). Branching in Salesforce Surveys is page-level, not question-level. You route respondents to different pages based on answers on the current page. This means you must plan your page layout carefully -- a question that drives branching logic must be on its own page or grouped only with questions that share the same routing destination. ### Guest User Access for External Surveys External survey collection is the single most common source of failures. When an unauthenticated person clicks a survey link, they operate under the site's Guest User Profile. That profile must have Read and Create permissions on Survey, SurveyInvitation, SurveyResponse, and SurveyQuestionResponse objects. Without these, the respondent silently fails to submit or sees a generic access error. The guest user also needs field-level security on all fields used in the survey invitation flow. --- ## Common Patterns ### Pattern: Post-Case Survey via Email Invitation **When to use:** You want to collect CSAT or NPS feedback after a support case is closed. **How it works:** 1. Create the survey with an NPS or Rating question on page 1 and an optional free-text follow-up on page 2. 2. Create a Survey Invitation linked to the survey, setting the participant type to "Community" or "Link" for external respondents. 3. Build a Flow that fires when Case Status changes to Closed. The Flow creates a SurveyInvitation record and sends the invitation URL via email using an Email Alert or Send Email action. 4. Map the SurveyInvitation to the Case via a lookup or the survey's built-in record association. **Why not the alternative:** Sending a raw survey link without a SurveyInvitation loses the ability to tie responses back to the originating Case record, making the data useless for reporting. ### Pattern: Internal Employee Pulse Survey **When to use:** Collecting periodic feedback from authenticated Salesforce users (employees or partners with login access). **How it works:** 1. Create the survey with the desired question types. 2. Distribute via a direct link or embed the survey in a Lightning page using the Survey component. 3. Internal users authenticate normally; no guest user configuration is needed. 4. Responses are automatically tied to the running user's record. --- ## Decision Guidance | Situation | Recommended Approach | Reason | |---|---|---| | External customers, no Salesforce login | Guest User Profile + SurveyInvitation link | Only way to capture external responses without requiring authentication | | Internal employees with Salesforce access | Direct link or embedded Lightning component | Simpler setup, automatic user association | | Need to tie response to a Case or Account | Flow-generated SurveyInvitation with record lookup | Maintains the relationship for reporting | | More than 300 lifetime responses needed | Upgrade to Feedback Management Starter or Growth | Base tier hard cap cannot be bypassed | | Complex conditional logic between questions | Page-level branching with one decision question per page | Branching is page-level only; mixing decision questions on one page creates routing conflicts | --- ## Recommended Workflow Step-by-step instructions for an AI agent or practitioner working on this task: 1. Confirm the org's Feedback Management tier and current response count. If the org is on Base tier, verify the 300-response lifetime cap has not been reached before designing anything. 2. Identify the audience: internal (authenticated) vs external (guest user). For external, verify the Experience Cloud site exists and the Guest User Profile has Read and Create on Survey, SurveyInvitation, SurveyResponse, and SurveyQuestionResponse. 3. Design the survey page structure with branching in mind. Place decision-driving questions on their own page so page-level branching can route correctly. 4. Create the SurveyInvitation records programmatically (via Flow or Apex) if the survey is triggered by a business event like case closure. Map the invitation to the source record. 5. Test with an actual external user session (incognito browser, no Salesforce login) to verify guest user permissions are correct. Internal testing while logged in will not surface guest user permission failures. 6. Build reports joining SurveyResponse and SurveyQuestionResponse to the source record (Case, Account, etc.) and validate that NPS bucketing and scoring appear correctly. --- ## Review Checklist Run through these before marking work in this area complete: - [ ] Feedback Management tier confirmed and response cap is sufficient for projected volume - [ ] Guest User Profile has Read and Create on all survey-related objects (if external) - [ ] Field-level security on guest user profile covers all fields referenced in the survey flow - [ ] Branching logic tested with each possible answer path - [ ] SurveyInvitation records correctly associated to source records for reporting - [ ] Survey tested from an unauthenticated browser session (for external surveys) - [ ] NPS scoring verified: Detractor (0-6), Passive (7-8), Promoter (9-10) --- ## Salesforce-Specific Gotchas Non-obvious platform behaviors that cause real production problems: 1. **Base tier 300-response lifetime cap** -- This is a lifetime cap, not monthly. Once 300 responses are recorded across all surveys, no more responses can be collected. There is no warning before hitting the limit; surveys simply stop accepting submissions. 2. **Page-level branching only** -- Unlike third-party tools, branching cannot be applied at the individual question level. If two questions on the same page need different routing, you must split them across pages. 3. **Guest user silent failures** -- When a guest user lacks object-level or field-level access, the survey may render but silently fail on submit with no useful error message to the respondent. --- ## Output Artifacts | Artifact | Description | |---|---| | Survey design document | Question types, page layout, and branching logic map | | Guest user permission checklist | Object and field permissions required on the Guest User Profile | | Survey distribution flow | Automation that creates SurveyInvitation records and sends links | --- ## Related Skills - reports-and-dashboards-fundamentals -- for building survey response reports and NPS dashboards - sharing-and-visibility -- for understanding guest user profile permissions and object access - flow-for-admins -- for automating survey invitation creation and distribution
Related Skills
salesforce-shield-deployment
Roll out Shield (Platform Encryption + Event Monitoring + Field Audit Trail) end-to-end, sequencing feature enablement to avoid data lockout. NOT for Classic Encryption or general PE design.
ferpa-compliance-in-salesforce
Use this skill when implementing FERPA (Family Educational Rights and Privacy Act) compliance controls in Salesforce Education Cloud or Education Data Architecture (EDA): LearnerProfile FERPA boolean fields, directory information opt-out via FLS and Individual data privacy flags, ContactPointTypeConsent for parental and third-party disclosure, 45-day student records response window tracking, and consent workflow automation. Trigger keywords: FERPA, student records privacy, LearnerProfile, parental disclosure, directory information opt-out, education data privacy, student consent, education cloud compliance. NOT for GDPR/CCPA general data privacy (see gdpr-data-privacy skill), platform encryption at rest (see platform-encryption skill), or HIPAA health-data compliance.
industries-cpq-vs-salesforce-cpq
Use this skill when comparing Industries CPQ (formerly Vlocity CPQ) with Salesforce CPQ (Revenue Cloud managed package) — covering feature parity, decision criteria, migration paths, and coexistence patterns. Trigger keywords: Vlocity CPQ, Industries CPQ, Salesforce CPQ comparison, Revenue Cloud migration, CPQ selection, which CPQ to use. NOT for implementing, configuring, or debugging either CPQ product.
tableau-salesforce-connector
Tableau ↔ Salesforce integration patterns: Tableau Salesforce connector, Tableau for Salesforce, CRM Analytics alternative, Data Cloud + Tableau, embedded Tableau dashboards. Choose between connector modes (live, extract, direct-to-Data-Cloud). NOT for CRM Analytics Studio (use crm-analytics-foundation). NOT for generic Tableau Server setup.
slack-salesforce-integration-setup
Use this skill when setting up or troubleshooting the Salesforce for Slack managed app — including connecting a Salesforce org to a Slack workspace, configuring the three-party admin handshake, linking Slack channels to Salesforce records, enabling record preview sharing, and managing org-level limits. Triggers on: Salesforce for Slack app not connecting, Slack org connection setup, Salesforce record sharing in Slack, Slack workspace admin approval, connecting Salesforce to Slack. NOT for building custom Slack apps or Slack bots (separate development platform), not for Slack Workflow Builder Salesforce connector (use slack-workflow-builder skill), not for Flow-based Slack messaging (use flow-for-slack skill).
salesforce-to-salesforce-integration
Use this skill to implement Salesforce-to-Salesforce integration patterns — covering the native S2S feature, API-based cross-org sync, Platform Event bridging, and Salesforce Connect Cross-Org adapter. Trigger keywords: Salesforce to Salesforce integration, cross-org data sharing, S2S feature, cross-org Platform Events, Salesforce Connect cross-org. NOT for multi-org strategy or architecture decisions (use architect/multi-org-strategy), single-org data sharing, or external (non-Salesforce) system integration.
salesforce-maps-setup
Use when configuring Salesforce Maps (formerly MapAnything) — territory planning, route optimization, live tracking, geo-grid visualizations, and check-in/check-out workflows for Sales or Service field reps not on Field Service. Covers package installation order (Maps + Maps Advanced + Maps Routing/Live Tracking add-ons), the MapsTerritoryPlan / MapsAdvancedRoute / MapsLayer object family, base-data syncs (Geocoding and Routing services), and integration with Sales and Service Cloud records. Triggers: 'Salesforce Maps setup', 'MapAnything migration', 'territory planning by polygon', 'route optimization for sales reps', 'live tracking field reps', 'plot accounts on a map', 'check-in to the closest account'. NOT for Field Service Lightning territory and scheduling (use admin/fsl-scheduling-optimization-design and data/fsl-territory-data-setup) — Maps and FSL are different products. NOT for Consumer Goods Cloud retail visit planning (use admin/consumer-goods-cloud-setup) — RoutePlan/Visit objects are CG-specific. NOT for Tableau / CRM Analytics geo charts.
salesforce-functions-replacement
Salesforce Functions is retired (EOL Jan 2025). This skill maps Functions workloads to replacements: Heroku (with Hyperforce), external containers, Apex (where viable), Agentforce Actions, external compute via Named Credentials. NOT for Lambda / Azure Functions tutorials. NOT for Apex @future replacement (use async-selection tree).
salesforce-data-pipeline-etl
Export large Salesforce datasets to a lakehouse via Bulk API 2.0, CDC streams, or Salesforce Data Pipelines. NOT for ad-hoc exports.
salesforce-connect-external-objects
Use when deciding whether Salesforce Connect and External Objects are the right fit for external data access, or when reviewing OData, cross-org, and custom adapter patterns, query limitations, and latency tradeoffs. Triggers: 'Salesforce Connect', 'External Objects', '__x', 'OData adapter', 'custom adapter'. NOT for ordinary ETL or replicated-data designs where the data should live inside Salesforce.
outbound-webhook-from-salesforce
Use when Salesforce must POST a webhook to a third-party endpoint after a record change — with signed payloads, retries, dead-lettering, rate limits, and idempotency. Covers design choice between Outbound Message, Flow HTTP Callout, Apex Queueable callout, and Event Relay. Does NOT cover inbound webhooks into Salesforce (see inbound-webhook or apex-rest-webhook).
mulesoft-salesforce-connector
Designing and configuring MuleSoft Anypoint Salesforce Connector flows: API selection (SOAP/REST/Bulk/Streaming), OAuth 2.0 JWT Bearer auth, watermark-based incremental sync with Object Store, batch processing with record-level error isolation, and replay topic subscriptions. Use when building Mule 4 flows that read from or write to Salesforce, migrating from Mule 3 watermark to Mule 4 Object Store, or troubleshooting connector authentication and API limits. NOT for native Salesforce-to-Salesforce integration without MuleSoft (use platform-events-integration or change-data-capture-integration). NOT for generic REST callout patterns from Apex (use rest-api-patterns).