Have something to say?

Tell us how we could make the product more useful to you. We URGE you to use the Pelcro Discovery GPT to help structure your thoughts and recommend a feature request that will be quickly digested by our team!

In Planning

Trigger automations with In app notifications

πŸ” Problem Statement We need an in-app notification channel for event-based workflows that works across ALL Pelcro UIs β€” Default UI, React Elements, and fully custom UIs built directly on the JS SDK. Building rendering logic per UI layer would leave custom-UI publishers without coverage. The JS SDK is the common denominator across all Pelcro frontends. πŸ’‘ User Story As a marketer, I want to send an in-app notification (banner, toast, or inline card) to customers matching an event-based segment, so I can engage users in the moment β€” regardless of which Pelcro UI surface they are on. As a developer integrating Pelcro, I want a simple way to either auto-render notifications OR listen to an event and render them myself, so I am not forced to migrate UI surfaces just to use this feature. 🎯 Definition of Done (DoD) ──────────────────────────────── ARCHITECTURE β€” JS SDK MODULE ──────────────────────────────── βœ” New Pelcro.notifications module in the JS SDK, following the same conventions as Pelcro.user, Pelcro.subscription, etc. βœ” On user authentication, the SDK calls GET /notifications/active and fetches the list of pending in-app notifications for that customer. βœ” For each pending notification, the SDK dispatches a notification.received event consumable by publisher code. βœ” The SDK exposes a simple API for retrieval, dismissal, and click tracking: β€’ Pelcro.notifications.list() β€’ Pelcro.notifications.refresh() β€’ Pelcro.notifications.dismiss(id) β€’ Pelcro.notifications.markAsClicked(id) β€’ Pelcro.notifications.on('received' | 'dismissed' | 'clicked', callback) ──────────────────────────────── TWO INTEGRATION PATHS ──────────────────────────────── Path 1 β€” Default UI/React elements: βœ” Pelcro.notifications.enable({ position, theme, maxVisible, autoDismissAfter }) opt-in renders notifications automatically with brand-aware styling (site logo + color palette). Default UI and React Elements use this built-in renderer under the hood β€” zero integration effort for those publishers. Path 2 β€” Custom UIs βœ” Custom-UI publishers subscribe to Pelcro.notifications.on('received', callback) and render notifications however they want. βœ” A ~20-line sample HTML/JS snippet is published in the developer docs showing how to subscribe and render. ──────────────────────────────── Platform UI ──────────────────────────────── Add a simple rich text editor for notification content in the automation form. Fields: β€’ Title (required) β€” plain text, single line, no formatting β€’ Body (required) β€” rich text editor: bold, italic, links, ordered/unordered lists. No images, no embeds, no custom HTML. β€’ CTA label (optional) β€” plain text, single line β€’ CTA URL (optional) β€” validated as URL β€’ Dismissible (toggle, default: true) β€’ Expiry (default: 30 days, configurable per workflow) βœ” Notifications are delivered on the customer's next page load after they enter the segment βœ” Notifications are user-scoped β€” only authenticated customers receive them. Anonymous visitors do not. βœ” Notifications NOT loaded by the customer within the expiry window are marked expired and not redelivered.

Rana Haleem 3 days ago

Planned

Add Gift Redemption Status to default UI

πŸ” Problem Statement The current dashboard UI does not clearly show whether a subscriber who sent a gift has had that gift redeemed by the recipient. This makes it difficult for teams to track gift subscription status, support customer inquiries, and understand whether gifted subscriptions are still pending or successfully claimed. πŸ’‘ User Story As a dashboard user, I want to see the redemption status of a gift sent by a subscriber, so that I can easily know whether the gift has been redeemed or is still pending. 🎯 Definition of Done (DoD) A feature is done when: βœ” The dashboard UI displays gift information for subscribers who have sent a gift. βœ” The gift status is clearly shown as Redeemed or Not Redeemed/Pending. βœ” The status reflects the actual redemption state of the gift recipient. βœ” The gift status is visible in the default subscriber dashboard view or an easily accessible subscriber details section. βœ” Support/admin users can identify the gift sender and confirm whether the recipient has redeemed the gift. βœ” The feature is tested with both redeemed and unredeemed gift scenarios. βœ” Existing subscriber dashboard functionality remains unaffected.

Rana Haleem 3 days ago

Planned

Support quantity in subscription checkout flow (Default UI)

πŸ” Problem Statement Pelcro's cart functionality only supports one-time ecommerce product purchases. Subscription products cannot be added to a cart, which means customers cannot bundle subscriptions with other items in a single checkout β€” limiting cross-sell and upsell opportunities. πŸ’‘ User Story As a subscriber, I want to add subscription products to my cart alongside one-time purchases, so that I can complete a single checkout for everything I want to buy. As a principal, I want to order a large and exact number of subscriptions at one time, so that I can buy magazines for entire classrooms. 🎯 Definition of Done (DoD) A feature is done when: βœ”οΈ Given a cart with both subscription and one-time products, when the customer completes checkout, then all items are processed correctly β€” one-time charges are invoiced immediately and subscriptions are created with their respective billing cycles. Have quantity in the checkout flow for one product/plan. plan price x quantity with same address

Rana Haleem 3 days ago

Planned

Customer Activity Metrics + Acquisition Funnel

πŸ” Problem Statement As an analytics user, I open the Customers Activity page to only a raw event feed, forcing CSV exports and external joins to understand conversion. πŸ’‘ User Story As an analytics user, I want an overview band with summary metrics and an acquisition funnel on the Customers Activity page, so that I can read conversion at a glance without exporting. As a marketing user, I want each card and funnel step to filter the event list on click, so that I can drill into the customers behind any number. 🎯 Definition of Done (DoD) βœ” Given the Customers Activity page loads, then an overview band shows four cards β€” Paywall Views, Overall Conversion, Checkout Abandonment, Renewal Rate β€” scoped to the active date range. [clarify: Renewal Rate denominator β€” events-only (Renewed Γ· Renewed + Renewal Failed) vs billing "due" count] βœ” Given the page's existing date filter, when the user changes it, then all cards, the funnel, and the page list recalculate to that range, with no separate date control added. βœ” Given the overview band, when rendered, then an Acquisition Funnel shows steps Paywall Displayed β†’ Plan Viewed β†’ Checkout Started β†’ Registered β†’ Subscription Created, each with a count and step-to-step conversion rate. βœ” Given the overview, when rendered, then a Top Converting Pages list ranks page paths by attributed Subscription Created count, showing the top 10 with conversions per path. βœ” Given any card, funnel step, or page row, when the user clicks it, then the activity list filters to the matching events. export should work fine with the filters

Rana Haleem 3 days ago

Planned

Enhance platform login durations

Login view is the most viewed page on the platform, it seems like we are requiring the business users to login every day - likely a simple improvement to reduce the amount of times users need to login into the platform. Reduces a lot of clicks and password types to the daily platform users. Problem Statement Currently, The "Remember Me" functionality only persists sessions for 7 days, which is shorter than the common industry standard for B2B SaaS platforms typically 30 days. Additionally, many B2B SaaS products enable the "Remember Me" option by default to reduce login friction while still allowing users to opt out. Pelcro also logs users out after 120 minutes of inactivity, and browser sessions end when the browser is closed if the "Remember Me" option is not selected. User Story As a Pelcro user, I want my login session to persist for a reasonable period of time so that I can access the platform without being required to log in repeatedly during normal usage. Definition of Done (DoD) Option A – Extend Remember Me Duration to 30 days (Industry standards) Increase the Remember Me session duration from 7 days to 30 days. Existing authentication and security controls continue to function as expected. Option B – Enable Remember Me by Default The "Remember Me" checkbox is pre-selected on the login screen. Users can still opt out by unchecking the option before logging in. The default behavior aligns with common B2B SaaS practices, where persistent login is enabled by default to reduce friction. Option C – Extend Admin Dashboard Idle Timeout Increase the admin dashboard session idle timeout from 120 minutes to 480 minutes (8 hours). Users remain logged in throughout a typical workday without interruption due to inactivity.

Rana Haleem 3 days ago

In Progress

Reorganize Reports

Problem Statement Users have difficulty finding and accessing reports because reports are spread across multiple sections (Health Reports, Accounting Reports, and Old Reports). This creates a fragmented experience, makes report discovery harder, and limits visibility into report usage and performance. User Story As a user, I want to access all reports from a single reports page so that I can easily find, navigate, and use reports without having to search across multiple locations. Definition of Done (DoD) A single Reports page contains all existing reports. Health Reports, Accounting Reports, and Old Reports are consolidated into the new view. Reports are grouped by category. Each report has a unique URL for analytics and tracking purposes. Report usage can be tracked accurately in Mixpanel.

Rana Haleem 11 days ago

Planned

Add Current Phase Campaign Key to Subscriptions Export

πŸ” Problem Statement As a Pelcro admin exporting subscription data, the current campaign_key column reflects the key set at subscription creation, not the campaign key of the current active phase, which results in inaccurate campaign attribution for multi-phase or renewed subscriptions. πŸ’‘ User Story As a Pelcro admin, I want the subscriptions export to include a current_phase_campaign_key column, so that I can accurately attribute each subscription to the campaign that drove its current active phase. 🎯 Definition of Done (DoD) βœ” Given a subscription with multiple phases, each linked to a different campaign key, when the subscriptions export is generated, then a new current_phase_campaign_key column reflects the campaign key of the currently active phase β€” distinct from the original campaign_key column. βœ” Given a subscription with no campaign key on the current phase, when the subscriptions export is generated, then the current_phase_campaign_key column is empty (not null-errored). βœ” This change will impact API and Data, specifically the subscriptions export endpoint and CSV generation logic. βœ” This solution will include the following limitations: current_phase_campaign_key is read-only in the export and does not replace the existing campaign_key column; phase history is out of scope.

Rana Haleem 11 days ago

In Progress

Introducing AI Voice Agent

πŸ” Problem Statement Subscribers have no way to get instant account support outside of business hours or without waiting for a human agent, leading to unresolved issues, churn risk, and increased support load on client teams. πŸ’‘ User Story As an account owner, I want a dedicated AI-powered phone support line for my subscribers, so that they can get instant help with their account, subscription, and billing without needing to reach a live agent. 🎯 Definition of Done (DoD) Phone number setup βœ” Given the Voice AI Agent feature is enabled on a client account, when the setup is complete, then the client receives a dedicated phone number their subscribers can call β€” no Twilio account or telephony knowledge required from the client. Subscriber identification βœ” Given a subscriber calls in, when the call connects, then the AI automatically looks up the caller by their phone number and loads their account β€” if the number is not found, the AI prompts for an email address or transfers to a live agent. Identity verification βœ” Given a subscriber is identified, when they request account information or an action, then the AI sends a one-time code to the phone or email on file and verifies the caller before proceeding. Account information βœ” Given a verified subscriber, when they ask about their account, then the AI can answer questions about: Subscription status and plan details Renewal date and billing cycle Outstanding invoices and payment history Payment method on file Self-service actions βœ” Given a verified subscriber, when they request an action, then the AI can: Cancel a subscription Pay an outstanding invoice using the card on file Escalation βœ” Given the AI cannot identify, verify, or resolve a subscriber's request, when the fallback is triggered, then the subscriber is transferred to a live agent or directed to the self-service portal.

Rana Haleem 11 days ago

In Planning

Enhance Admin Roles

πŸ“‹ Problem Statement Currently, the Admin role in Pelcro has unrestricted access to all platform features β€” including high-risk and destructive operations like creating/deleting collaborators, deleting customers, modifying integrations, changing API keys, and altering core account settings (taxes, billing, ACH, identity, sites). πŸ’‘ User Stories As a platform owner, I want to revoke some of the admins permissions and keep it on the owner role for better security and scoping. 🎯 Definition of Done (DoD) Revoke deleting customers from admins and keep it only on owners. Revoke Enable, create, edit integrations and keep it only on owners. Revoke using standard import tool.

Rana Haleem 11 days ago

Planned

Add Account owner permissions to collaborators

πŸ“‹ Problem Statement Currently, the Admin role in Pelcro has unrestricted access to all platform features β€” including high-risk and destructive operations like creating/deleting collaborators, deleting customers, modifying integrations, changing API keys, and altering core account settings (taxes, billing, ACH, identity, sites). πŸ’‘ User Stories As a platform owner, I want to configure Super Admin permissions per collaborator that owns integrations, API keys, all account settings, and destructive actions like customer deletion β€” while regular Admins keep their day-to-day operational power. 🎯 Definition of Done (DoD) 🟒 New Account owner permission added: Add Account owner permission to collaborator form. When enabled to a collaborator, the collabarator has same permissions as an owner. Only the account owner can toggle this permission for any collaborator to gain access on all the platform.

Rana Haleem 11 days ago

In Progress

Enhance Sales Roles

Problem Statement Sales reps need to track their performance, pull reports, and create promotional coupons to drive new business, but the current role doesn't give them enough read or export access. At the same time, sales reps should not be able to modify billing, refund payments, or change subscriptions β€” those operations belong to Customer Service. πŸ’‘ User Stories As a sales representative, I want to be able to view and export customer, subscription, and activity data, create coupons to support deals, and add new customers and organizations to the system 🎯 Definition of Done (DoD) 🟒 Permissions Granted (Sales Rep gets MORE access): View product details (was Admin/Support only) Create and edit coupons (was Admin only β€” this is a big one for sales-driven deal-making) View invoices and download them (currently bundled with edit/pay, which Sales Rep can't do; needs to be split out) View subscriptions (currently bundled with edit/cancel, which Sales Rep can't do; needs to be split out) Granular customer / organization / address management β€” currently the role has no granular control here πŸ”΄ Permissions Revoked (Sales Rep gets LESS access): Standard import tool β€” moved away from Sales Rep (was Yes, becomes No) βšͺ Unchanged: Export data / reports / CSVs (stays Yes) Members of a subscription (stays Yes) Memberships management (stays Yes) All billing modifications, payment operations, subscription edits, payment methods, settings (stay No)

Rana Haleem 11 days ago

In Progress

Add expandNewsletterSection Boolean to Pelcro.uiSettings

Problem Currently, the newsletter section behavior is not configurable through Pelcro.uiSettings. Clients need a way to control whether the newsletter section should be expanded by default. User Story As a client using Pelcro UI, I want to configure whether the newsletter section is expanded by default, so that I can control the user experience based on my site’s needs. DOD Add a new Boolean setting: expandNewsletterSection. The setting should be available under Pelcro.uiSettings. When expandNewsletterSection = true, the newsletter section should be expanded by default. When expandNewsletterSection = false or not provided, the newsletter section should keep the current/default behavior. Ensure the change does not break existing UI settings.

Rana Haleem 16 days ago

Enable Comprehensive "All" Search to Reduce Multiple Search Steps within Pelcro

The previous "All" search functionality allowed users to perform a single search across all relevant content types and records within Pelcro. This capability was an important part of our daily workflow, enabling users to quickly locate information without needing to know in advance where a record was stored. Since the feature was removed, users are required to search multiple areas separately, increasing the time needed to find information and creating additional friction in routine tasks. This change has reduced efficiency and negatively impacted the user experience, particularly for teams that manage large volumes of records and content. We request the restoration of the "All" search option, or an equivalent global search experience that allows users to search across all applicable data sources from a single search interface. Requested Outcome: Reintroduce a global "All" search option that returns results from all relevant content types and records in a single search experience.

Nikisha Bolloju 17 days ago

Planned

Separate Passwordless Token for Campaign Magic Links

Separate duration setting for campaign-generated tokens Please add a separate config setting to control the duration for tokens generated by campaigns. Campaign-generated tokens often require a relatively long lifetime (30 to 60 days) to allow time for the campaign recipients to receive the communications. This is especially true when we send communication via postal mail. Ideally this would be a campaign-level setting, but an account level setting would be acceptable. Add support for values less than one day A more typical password-less login flow where the token is requested by a user on the website should produce in a token that lasts for a very short duration, just long enough for the user to receive and open the email. I would suggest adding a few options less than 1 day. I think we would chose something like 1 hour.

Mike Gilbert 18 days ago

1

Support USPS ACS/EPF File Import for Subscriber Updates

Problem Statement Publishers receive USPS ACS/EPF files containing address corrections and undeliverable mail information. Pelcro currently supports pre-mail NCOA processing but does not support importing ACS/EPF files to update subscriber records after fulfillment. User Story As a circulation manager, I want to import USPS ACS/EPF files into Pelcro so that subscriber addresses and deliverability statuses can be updated efficiently. Definition of Done Admin users can upload an ACS/EPF file into Pelcro. Pelcro matches records to existing subscribers. Address updates and undeliverable statuses are applied to matched subscribers. A processing summary shows updated, unmatched, and failed records.

Rana Haleem 19 days ago

Add Feature to Adjust Subscription Start/End Date(for autorenew)

πŸ” Problem Statement Subscribers sometimes need their subscription start date adjusted after purchase due to technical issues, delayed gift subscription timing, or customer service accommodations. For example, we recently had a BibleStudyTools.com PLUS subscriber who was unable to properly access her ad-free PLUS account for over a month while actively paying for the subscription. After troubleshooting, we were able to resolve the access issue by having her log out, log back in, and clear her browser cache. However, because she lost access to the paid benefits for an extended period, she requested that her subscription be restarted or extended to make up for the lost time. Currently, we do not have a simple way within Pelcro to adjust a subscription’s start date or extend the end date. This also comes up when users purchase their own subscription along with a gift subscription for a spouse or family member, but the gift subscription starts at a later date. In those cases, users may want their own subscription adjusted so both subscriptions line up correctly. Without this functionality, our support team has limited ability to resolve valid customer concerns directly within the Pelcro backend. πŸ’‘ User Story As a customer support/admin user in Pelcro, I want the ability to pause a subscriber’s active subscription or adjust the subscription start and end dates, so that I can fairly compensate customers for lost access, align subscription timing with gift subscriptions, and better manage customer service accommodations without needing manual workarounds. 🎯 Definition of Done (DoD) A feature is done when we can: βœ” Adjust a subscription’s start date when needed. βœ” Extend a subscription’s end date to make up for lost access or support-related issues. βœ” Apply these changes to both monthly and annual subscription plans. βœ” Clearly display the updated subscription timeline in the customer’s account. βœ” Ensure billing is handled correctly when a subscription is moved or extended. βœ” Add an internal note or reason field so admins can document why the subscription was paused or adjusted. βœ” Ensure the subscriber does not lose access when an admin is only extending the subscription end date. βœ” Provide confirmation to the admin before changes are saved, so accidental subscription changes can be avoided.

Gabrielle Sellitti 24 days ago

Planned

Configurable charge-upon-renewal look-ahead

πŸ” Problem Statement As a client admin, charge-upon-renewal only charges one renewal phase ahead, so paid phases added behind an intermittent free phase go uncharged and revenue is deferred. πŸ’‘ User Story As a client admin, I want to set how many renewal phases ahead charge-upon-renewal charges from the platform admin dashboard, so that paid phases sitting behind free or stacked phases are collected when they're added. 🎯 Definition of Done (DoD) βœ” Given charge-upon-renewal is enabled and the look-ahead is set to N phases in the admin dashboard, when a subscription has N or fewer phases before a paid phase, then that paid phase is charged on the spot. βœ” Given the admin dashboard setting, when an admin saves the look-ahead value, then it persists per site and defaults to 1 for existing accounts. βœ” This change will impact UI and API, specifically the charge-upon-renewal settings screen in the admin dashboard and its backing configuration endpoint. βœ” This solution will include the following limitations: applies only when charge-upon-renewal is enabled; does not retroactively charge phases on existing subscriptions; look-ahead is a per-site setting, not per-plan or per-subscription. [clarify: confirm per-site scope]

Rana Haleem 25 days ago

In Progress

Add Coupon Code/Name to Subscription by Coupon Export

πŸ” Problem Statement The current Subscriptions by Coupon report export identifies transactions associated with coupon usage but does not include the specific Coupon Code or Coupon Name applied to each transaction. As a result, customers cannot easily determine which coupon campaign generated a particular sale, making coupon performance analysis, campaign attribution, and reporting more difficult. πŸ’‘ User Story As a marketing or subscription manager, I want the Subscriptions by Coupon report export to include the Coupon Code and/or Coupon Name used for each transaction, so that I can accurately track sales performance, measure coupon campaign effectiveness, and perform detailed reporting on coupon usage. 🎯 Definition of Done (DoD) A feature is done when: βœ” Given a transaction associated with a coupon, when the Subscriptions by Coupon report is exported, then the export includes the specific Coupon Code and/or Coupon Name used for that transaction. βœ” A new column for Coupon Code and/or Coupon Name is added to the export file. βœ” The exported coupon information matches the coupon applied at the time of the transaction. βœ” Transactions without a coupon display a blank or appropriate null value in the coupon field(s).

Rana Haleem 25 days ago