No documentation matches found

Try matching broader keywords like "Docker", "Tango", "Salesforce", or "Piped Text".

Introduction Overview

Vocero is the premier enterprise-grade B2B B2C self-hosted survey platform. We give product and customer experience teams full data ownership while keeping survey completion rates high.

Unlike traditional third-party SaaS services that load heavy code blocks and expose user statistics to external servers, Vocero compiles to a single self-hosted script. With full volume isolation, standard relational persistence, dynamic CRM syncing, and LLM endpoints, you retain complete authority over your feedback lifecycle.

💡

Self-Hosted Advantage: Hosting Vocero directly in your private Docker network ensures complete GDPR, HIPAA, and CCPA alignment with zero data leaks to third parties.

Self-Hosted Deployment Production

Deploy Vocero securely into your system architecture. We provide a single Docker image containing the backend engine and the pre-built admin panel.

Mounting Persistent Volumes

Vocero relies on SQLite by default. To prevent surveys, settings, and response archives from being wiped when upgrading or pushing new Docker images, you MUST bind a host directory to the database volume.

Bash Shell
# Pull the latest image
docker pull vocero/platform:latest

# Deploy the container binding port 3000 and the volume path
docker run -d \
  -p 3000:3000 \
  -v /var/lib/vocero/data:/app/data \
  --env-file .env \
  --name vocero-core \
  vocero/platform:latest
⚠️

Persistence Notice: Make sure the host directory path (e.g. /var/lib/vocero/data) has correct write permissions. The database file will be saved inside the container at /app/data/survey.db.

Environment Variables Schema

Configure your Vocero instance using system environment parameters stored in a .env file at the root.

Variable Name Type Default Description
PORT Number 3000 The local listener port that maps to the Express server.
DATABASE_PATH String ./server/db/survey.db The active path of the SQLite database. Move inside your mounted volume directory in production (e.g., /app/data/survey.db).
JWT_SECRET String - Secure hashing string used to sign admin interface login tokens.
SKIP_LICENSE Boolean false Development mode flag to bypass standard license check validations.
.env File Structure
PORT=3000
DATABASE_PATH=/app/data/survey.db
JWT_SECRET=8a3e9c5f81d4b2e67a0f3d5c6b9e2a1f4d8e7c0b
SKIP_LICENSE=false

Troubleshooting & Recovery Security

Recover administrator credentials or bypass login errors caused by persistent volume mappings.

The Database Volume Persistence Gotcha

If you deploy Vocero with a persistent volume mapping (e.g. -v /your/host/path:/app/data), deploying a new Docker image preserves your old SQLite database file. Because the database contains your old password records, simple seeder restarts will skip rewriting them.

Runtime Container Password Reset

You can easily reset the administrator password inside your active production container without restarts, configuration flags, or downtime by running the built-in database reset utility:

CLI Container Exec
# Execute the admin reset utility inside the active docker container
docker exec -it vocero-demo node server/db/reset_admin.js
💡

Note: Once your credentials have been reset to admin@example.com / admin123, you can securely change your password from the Settings page within the Admin UI.

SDK & Widget Script Frontend

Embed intercepts into your web app. Simply load the compiled script globally to initiate trigger monitors.

Vocero tracks triggers locally within the visitor's browser session. By default, it does not send tracking logs back to your server, guaranteeing zero overhead and complete client-side data anonymity.

HTML Script Mount
<!-- Place before the closing </body> tag -->
<script async src="https://your-domain.com/intercept.js"></script>
💡

No manual page-by-page setup required: You never have to manually edit every page on your site. If you are building a modern React, Vue, WordPress, Rails, or Next.js app, simply place the script in your global Layout component, index.html, or theme header (e.g., header.php). It will instantly load across all paths automatically.

Google Tag Manager (GTM) Deployment

Google Tag Manager is 100% free and is the most common way marketing, product, and growth teams deploy Vocero without writing code or requesting engineering deploys. Deploying via GTM instantly activates URL targeting on every page of your site:

  1. Log into your Google Tag Manager container.
  2. Click Tags > New and select Custom HTML Tag as the tag type.
  3. Paste the Vocero integration snippet into the HTML text box.
  4. Set the firing trigger to All Pages (or standard custom page triggers).
  5. Click Save and Submit / Publish your changes. You are now live globally!

Advanced Trigger Controls

When mapping an Intercept through the Admin UI, you can configure granular display rules without touching a single line of code:

Trigger Name Target Element Example Value Operational Mechanism
Scroll Depth Percentage 50 Fires the modal once the user scrolls past 50% of the active page height.
Exit Intent Mouse Monitor Boolean Detects rapid vertical cursor exits towards the browser toolbar on desktop devices.
Cookie Exclusion Browser Cookie user_logged_in Prevents the intercept from loading if the named cookie is active.
Frequency Cap Cookie Registry 7 Blocks display for 7 days once a user dismisses or views the widget.

Universal Variables Piped Text

Extract parameters dynamically from active page URLs and pipe them directly into survey questions or response metadata.

Define universal variables globally inside the Surveys section modal on `/surveys`. These are instantly active across all surveys and direct links, making parameter mapping easy.

💡

Universal Use Case: If your company sends a direct survey link via CRM: https://your-domain.com/s/survey-id?channel=email&user_id=987, registering channel as a universal variable guarantees it binds to response entries and outputs seamlessly in your CSV/XLSX exports.

Display Piped Text Syntax

Bind variables inside your question labels, introductory paragraphs, or thank-you messages using the following brackets:

Syntax Template Source Description Dynamic Output Example
${channel} Custom/Universal parameter matched in URL query "email" / "sms" / "ads"
${url} The full active page URL https://example.com/checkout
${domain} The hostname of the website hosting the script example.com

Salesforce Response Mapper CRM

Sync survey responses and URL metadata directly into standard and custom fields of any Salesforce SObject (e.g. Lead, Contact).

Vocero incorporates a powerful Qualtrics-style field mapper. Under the **Integrations** tab, expanding the Salesforce panel reveals a custom builder where you map sources to specific Salesforce columns.

Example Mapping Logic Configuration
// Target Object: Lead
[
  { "source": "q1_nps_score",  "target": "NPS_Score__c" },
  { "source": "email_input",   "target": "Email" },
  { "source": "channel",       "target": "LeadSource" },
  { "source": "domain",        "target": "Website" }
]

Tango Card Incentives Rewards

Automatically distribute Amazon Gift Cards and other customer incentives using the Tango Card RaaS v2 API integration.

Setting Up Tango Card Credentials

First, navigate to the **Integrations** page to register your global Tango Card configuration settings:

  • Platform Key: Authorized basic auth key provided by Tango Card.
  • Account Identifier: Your specific Tango funding account reference.
  • Customer Identifier: Your registered customer identification.
  • Sandbox Mode: Toggle this 'On' to safely test delivery pipelines without deploying actual funds.

Configuring Survey Incentives

Inside the Survey Builder settings sidebar, expand the 🎁 Survey Incentives panel to map specific campaign incentives:

Configuration Property Target Input Field Standard Value
Incentivize Survey Toggle Switch Enabled
Reward Amount (USD) Numeric input 5.00 / 10.00
Tango UTID Reward Type Identifier AMZN-E-V-US (Amazon US Gift Card)
Recipient Email Question Question ID dropdown q2_email (The text question gathering user emails)

Claude AI Connector AI Integration

Run real-time intelligence analyses, summaries, and thematic grouping on responses using Claude (or custom GPT AI assistants).

Vocero does not require complex cron exports. We expose a secure public endpoint GET /api/public/v1/responses that outputs structured, clean, LLM-ready JSON.

OpenAPI Specification Guide

Generate a secure API Key under the **Integrations -> Claude & AI Connector** panel, then copy the pre-formatted OpenAPI JSON spec and paste it directly into Claude's Custom Tools creation block:

OpenAPI Tool Schema (Snippet)
{
  "openapi": "3.0.0",
  "info": {
    "title": "Vocero Responses API",
    "version": "1.0.0"
  },
  "paths": {
    "/api/public/v1/responses": {
      "get": {
        "summary": "Fetch survey responses for Claude analysis",
        "parameters": [
          { "name": "survey_id", "in": "query", "required": false }
        ]
      }
    }
  }
}

Aggregations & Analytics Breakdown

Vocero avoids exporting messy arrays. We aggregate complex inputs natively inside the platform so charts load instantly.

Slider Distribution Buckets

Instead of flat lines, slider question answers are grouped dynamically into 10-point ranges based on the slider's configuration (e.g. min: 0, max: 100). This automatically builds a balanced bar distribution chart in your dashboard.

Ranking Priority Mapping

Ranking answers (where users sort items in order of preference) are parsed and aggregated based on the total number of times each choice was ranked as the #1 priority. This gives you instant clarity on customer priorities.