Parcelvoy Platform Documentation
repository·main·Indexed 19 days ago
https://github.com/parcelvoy/platformAn open-source multi-channel marketing platform for cross-channel messaging, automated journeys, and real-time segmentation. Documentation covers the @parcelvoy/ui development lifecycle, website deployment, Docker Compose local setup, environment configuration, and the API router structure including Public, Admin, Client, and Project-scoped endpoints. Includes details on user identity management, event tracking via Segment-compatible schemas, and analytics provider integration for Segment, PostHog, and Mixpanel.
What's inside Parcelvoy
- Parcelvoy is an open-source automated messaging and customer engagement platform designed for growth companies and enterprises. It provides a user experience similar to SaaS engagement products (such as Braze or Iterable) but offers the flexibility of an open-source architecture for managing customer engagement and automated messaging.
Configure different Campaign Template Types
mainParcelvoy supports four distinct template types, each with specific field behaviors:
- Email: Comprised of fields like
subject,body, andcc. Thehtmlfield is specifically used to send rendered HTML and supports included styles. - Text Message: Primarily a single field. Note that using Handlebars variables can increase the total content length, which may affect how the message is segmented.
- Push Notification: Consists of a text body, a
title, and an optional JSONbody. All these fields support Handlebars customization. - Webhooks: Acts as a wrapper for HTTP REST requests. You can customize
headersandbodyparameters. Important: Thebodyandheadersfields accept objects, but Handlebars is only interpreted at the value level of each key, not on the objects themselves.
- Email: Comprised of fields like
What are Journeys in Parcelvoy
mainJourneys are configurable sequences of automated actions designed to add personalization to communications. They allow you to put communications on "auto-pilot" by automating tasks such as sending messages, updating users, or performing scheduled actions.
Common use cases include:
- Welcome experiences
- Level up notifications
- Cart abandonment sequences
- Special offers
- Recurring content messages
- Expiration notifications
A journey is fundamentally composed of
Steps. You define how a user enters a journey using anEntrancestep and then connect consecutive steps using a visual editor.Configure project-specific integrations
mainIntegrations in Parcelvoy define how your communications are sent. Because integrations are project-specific, you can configure different providers for different environments (e.g., using a sandbox provider for yourtestproject and a live provider for yourproductionproject).Understand the difference between Public and Secret API Keys
mainParcelvoy uses two types of API keys to control access and permissions. Each key is bound to a specific project and can only interact with data within that project.
- Public Keys: Designed for use in client libraries. They are safe to use in environments where the key might be exposed publicly (e.g., frontend code). Their scope is limited to data ingestion only.
- Secret Keys: Designed for administrative tasks via admin APIs. These keys have high privileges and can perform destructive actions, create new campaigns, trigger sends, and manage roles. These should never be exposed in client-side code.
How the Push Notification provider works
mainParcelvoy treats Apple (APN) and Google (Firebase) push notifications as a single provider type called
APN & Firebase.Because push notifications are considered a single message type, both services are managed within this unified integration. If you only want to target one platform (e.g., only iOS), you can leave the other platform's configuration section blank. Devices belonging to the excluded platform will automatically be skipped during notification sends.
How campaigns and templates are structured
mainA Campaign is a high-level container composed of a series of Templates. Each template represents a specific Locale (language/region). To build a multi-lingual campaign, you must create a separate template for every locale you intend to target.Understand Campaign Templates in Parcelvoy
mainEach campaign in Parcelvoy uses a Handlebars template to render the final message sent to end users. Templates define the structure of the message and include placeholders (variables) that are dynamically filled for every recipient. Templates allow for customization through a combination of variables and Handlebars functions.Understanding Campaigns in Parcelvoy
mainIn Parcelvoy, Campaigns are the central abstraction for all messaging activities. Every communication—whether it is an email blast, an SMS, a push notification, or a webhook triggered within a journey—is managed as a campaign.
A campaign encapsulates three core responsibilities:
- Scheduling: Determining when the communication occurs.
- Targeting: Defining who receives the communication.
- Designing: Creating the content and layout of the message.
Once a campaign is defined, it passes the transmission task to a specific provider. Campaigns support four primary channels:
- Text (SMS)
- Push Notification
- Webhook
Configure Campaign General Settings
mainWhen creating a campaign, the following general fields are required:
- Name: The display name used in lists and throughout the platform.
- Tags: Selectable tags used for later filtering of campaigns.
- Type: Defines the delivery logic:
blast: Sends the campaign to all users within a generated master list.trigger: Sends the campaign on an individual basis when a specific journey or API event is triggered.
Scalable Deployment Architecture for Parcelvoy
mainTo scale Parcelvoy to multiple servers as usage increases, you should decouple the major components. A truly scalable deployment involves separating the following four layers into their own managed environments or server instances:
- Database: Move from the local compose-managed instance to a dedicated database server.
- Queue: Separate the message queue service.
- Servers: Deploy the core application servers independently.
- UI: Host the user interface separately from the backend services.
Configure Locales
mainA Locale is a parameter set defining a user's language, region, and specific variants.
- Broad locales: e.g.,
es(Spanish). - Specific locales: e.g.,
en_PH(English from the Philippines).
- Broad locales: e.g.,