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!
Have something to say?
Update Subscription Modal on Mobile Devices
Problem Statement: The current subscription modal on mobile devices does not align with the new design standards and needs to be updated to improve the mobile user experience. User Story: As a user accessing the website on a mobile device, I want the subscription modal to match the provided mockup so that I can easily view and interact with the subscription options. Definition of Done (DoD): Update the subscription modal on mobile devices to match the provided mockup. Ensure the modal is fully responsive across different mobile screen sizes. Ensure all buttons, fields, and subscription actions function correctly. Maintain the existing subscription functionality.
Individual Invoices
It would be helpful to be able to email an invoice to a customer on a one-off basis. I have the invoicing email disabled due to the way Pelcro structured my migrated accounts. However, there are many times I need to invoice for a subscription; for example, when I receive a subscription card it would be ideal to enter their subscription and email an invoice without having to toggle the universal invoice email on, then back off after I create the subscription and invoice the account.
Legal Consent Checked by Default in Checkout
π Problem Statement As a publisher, I experience friction at checkout when a customer must input their checkmark, which results in lost revenue. π‘ User Story As a publisher, I want the option for enableLegalConsent checkmark to be enabled by default, so that I can streamline my checkout process. π― Definition of Done (DoD) A feature is done when: β οΈ Given the enableLegalConsent setting is used, when a second setting is introduced to toggle on the check by default, then the checkmark is enabled in the checkout flow. β This change will impact [UI / API / SDK / Integration], specifically [describe endpoint, component, or area affected]. β οΈ This solution will include the following limitations [list constraints, edge cases, or scenarios not supported].
AI usage dashboard: tokens and cost by service
π Problem Statement As a business user, I have no visibility into the cost consumed by Pelcro's AI services, which prevents me from tracking and managing my AI spend. π‘ User Story As a business user, I want a dashboard showing token consumption and cost broken down by AI service, so that I can monitor and manage my AI usage. π― Definition of Done (DoD) β Given AI usage across services, when a business user opens the AI usage dashboard, then tokens consumed and associated cost are displayed per service (e.g. AI coding agent, AI customer service). β This change will impact UI and API, specifically a new AI usage/metering endpoint and the dashboard. β All AI projects use the centralized LangfuseTracer::trace() method, which detects and sets account_id, site_id and user_id as trace tags on every trace, at all times. β An hourly cron job pulls the previous day's usage from Langfuse and saves only what is required (date, account, service, cost, input tokens, output tokens) in a local table. The dashboard reads from that table, not from Langfuse. β The cron job stays within the Langfuse Metrics API rate limit (100 requests/hour on Core, shared org-wide) and handles 429 responses by waiting for Retry-After and retrying. β This solution will include the following limitations: per-service aggregation only.
Ticketing: automated CSAT survey emails on ticket solved
π Problem Statement As a support manager, I can't collect satisfaction feedback on solved tickets, which leaves us with no CSAT data after leaving Zendesk. π‘ User Story As a support admin, I want to enable an automatic CSAT survey email in the Email Center, so that customers are asked for feedback after their ticket is solved. As a support manager, I want CSAT responses visible on the platform, so that I can review satisfaction per ticket and per agent without leaving Pelcro. π― Definition of Done (DoD) β Given CSAT is enabled in the Email Center, when a ticket has been Solved for 24 hours, then a survey email is sent to the ticket's customer. β Given a Solved ticket, when it is reopened before the 24 hours elapse, then the scheduled survey is cancelled. β Given a survey email, when the customer selects Good or Bad and optionally adds a comment, then the rating and comment are saved on the ticket. β Given a ticket with a CSAT response, when an agent opens Ticket Details, then the rating, comment, and response date are displayed. β Given the Tickets list, when an agent views or filters it, then a CSAT column shows each ticket's rating and the list can be filtered by rating. β Given a ticket that already received a survey, when it is reopened and solved again, then no second survey is sent. β Given a ticket with no customer email, or CSAT disabled in the Email Center, when the ticket is solved, then no survey is sent. β This change will impact UI / API, specifically the Email Center CSAT template and toggle, the ticket status-change scheduler, a public survey-response endpoint, CSAT fields on the ticket resource, Ticket Details, and the Tickets list. β This solution will include the following limitations: single survey template; binary Good/Bad rating; fixed 24-hour delay (not configurable); no aggregate CSAT dashboard or score trends in v1; survey link expiry.
Ticketing: canned Tickets report under Reporting > Customer Service
π Problem Statement As a support manager, I can't see a ticketing performance report in Pelcro like Zendesk's canned dashboards, which forces manual tracking of support performance. π‘ User Story As a support manager, I want a predefined Tickets report under Reporting, so that I can monitor ticket volume, satisfaction, and response times at a glance for a chosen timeframe. As a support manager, I want to see the CSAT responses customers submitted, so that I can understand the reasons behind the satisfaction score. As a support manager, I want to export the report, so that I can share it outside Pelcro. π― Definition of Done (DoD) β Given the Reporting page, when a manager opens it, then a new Customer Service section contains a canned Tickets report. β Given the Tickets report, when it loads, then it displays fixed widgets for ticket volume, tickets per status, satisfaction score, CSAT responses, median first-reply time, and median resolution time. β Given the Tickets report, when a manager selects a timeframe (last 7, 30, 90 days, or custom range), then all widgets reflect tickets created within that timeframe. β Given a selected timeframe, when the report loads, then the volume widget shows the total number of tickets created in that timeframe. β Given a selected timeframe, when the report loads, then the status widget shows the ticket count and percentage per status (Open, Pending, On-hold, Solved). β Given CSAT responses in the timeframe, when the report loads, then the satisfaction widget shows the score as Good Γ· (Good + Bad), with Good and Bad counts. β Given CSAT responses in the timeframe, when the report loads, then the CSAT responses widget lists each response with ticket ID, customer, assignee, rating, comment, and submission date, newest first. β Given a CSAT response in the list, when a manager clicks its ticket ID, then the related ticket opens in Ticket Details. β Given tickets in the timeframe, when the report loads, then it shows median first-reply time (created β first agent reply) and median resolution time (created β first Solved). β Given the Tickets report, when a manager clicks Export, then a CSV with all widget figures and the CSAT responses list for the selected timeframe is downloaded. β This change will impact UI / API, specifically a new Customer Service section on the Reporting page and a reporting endpoint returning the report figures and CSAT responses by timeframe.
Surface Organization Field as Part of Checkout
π Problem Statement As an Pelcro user, organizations cannot self identify as an organization in checkout, which results in unnecessary labor for me and confusion for my customers. π‘ User Story As a Pelcro user, I want the organization system to be self serve, so that my clients are able to correctly purchase and establish organizations for themselves. As a membership owner buying a multi-seat plan, I want to enter my organization name at checkout, so that my membership is tied to that organization. As a publisher admin, I want members added to a membership linked to the owner's organization, so that support can find any seat by organization. As a publisher admin, I want to require the organization field on membership plans, so that institutional purchases never land without one. π― Definition of Done (DoD) A feature is done when: β Given a membership plan with organization capture enabled, when a customer chooses a multi-user plan, then a mandatory free-text organization input is shown at checkout. β Given a membership plan is purchased by an organization owner, then the membership is registered as an organization and the purchaser is the organization's owner. β Given an organization name is submitted, when the membership subscription is created, then a new organization record is created and linked to the owner and membership. β Given the purchaser already has an organization on their profile, when the membership is created, then their profile organization is kept (only filled in when empty), and the new organization is still linked to the membership with the purchaser as owner. β Given a member accepts an invite to that membership, when their seat activates, then the member is linked to the membership's organization. β Given the member already has an organization on their profile, when their seat activates, then their profile organization is kept (only filled in when empty), and they are still linked to the membership's organization. β Given an organization owner or member is logged in, when the customer views their subscription, then their current organization is displayed and named as part of their subscription. β Given the organization input is shown, when the customer types, then no existing organization names are suggested or shown. β Given the organization input is shown, when the customer types, Pelcro does not check the organization name against existing organizations or indicate that a matching organization already exists. β Given the organization input is shown, when the customer types in an organization that already exists, Pelcro creates a new separated organization. Organization names are not unique; the organization record is the identifier.
Support Stripe Link payment method on the platform
Problem Statement Stripe's Link payment method syncs correctly to Pelcro's DB, but it is not displayed on the platform (e.g., on the customer's payment methods list). Link is also not listed as supported in our docs (https://docs.pelcro.com/docs/stripe#supported-payment-methods), so the behavior is currently unofficial and inconsistent: the data exists, but admins can't see or work with it. User Story As an admin/client, I want Link payment methods saved through Stripe to appear on the customer record, so that I can see how a customer is paying and allow customers who have Link as the only payment method to pay invoices correctly Definition of Done - A Link payment method synced from Stripe is displayed on the platform wherever other payment methods appear (customer payment methods, subscription details), with a clear label. - Link is usable as the payment source for subscription renewals and invoice payments, or its limitations are explicitly documented. - Existing Link payment methods already synced to the DB display correctly with no re-sync or backfill needed (or a backfill is provided if required).
Support Avatax with Ecommerce
Problem Statement Pelcro currently does not support AvaTax tax calculation for e-commerce transactions. E-commerce SKUs may require different AvaTax tax codes, and taxes must also be handled correctly when orders are refunded or items are returned. User Story As a merchant using AvaTax, I want Pelcro to calculate taxes for e-commerce purchases based on each SKUβs AvaTax tax code so that the correct taxes are applied to purchases, refunds, and returns. Definition of Done Support AvaTax tax calculation for e-commerce transactions. Allow an AvaTax tax code to be configured per SKU. Send the applicable SKU tax code to AvaTax when calculating tax. Support different tax codes for different SKUs within the same order. Calculate and display the applicable tax correctly during e-commerce checkout. Ensure AvaTax-calculated taxes are reflected correctly on the resulting order/invoice. Support full and partial refunds with the corresponding tax adjustment. Support item returns and correctly reverse/adjust the associated tax. Refund and return tax behavior should be consistent with Pelcro's existing tax behavior. Existing e-commerce flows that do not use AvaTax remain unaffected.
Send SMS and Facebook Messenger Messages via Automations
π Problem Statement As a business user, I can only send campaigns to my segments over email, which limits reach to customers who don't engage by email. π‘ User Story As a business user, I want to send campaigns to my existing segments via SMS and Facebook Messenger, so that I can reach customers on their preferred channel. π― Definition of Done (DoD) β Given a segment in the automation tool, when a business user creates a campaign, then they can select email, SMS, or Facebook Messenger as the send channel and the message is delivered to that segment. β This change will impact UI, API, and Integration, specifically the campaign/automation engine and the Integration Orchestrator (Twilio for SMS, Messenger Platform API for Facebook). β This solution will include the following limitations: [clarify SMS provider]; sends to existing segments only; [clarify whether inbound replies are handled].
Improve collaborator on-boarding experience
The process for adding a collaborator in Pelcro is clunky and error-prone, especially for Pelcro clients with multiple accounts. When we hire a new employee, we often end up adding them as a collaborator on all of our Pelcro accounts. This results in them receiving 15 to 30 invite emails, and they must click a link in each email to confirm each account. Should they fail to do so, we must delete their collaborator record in each account, and re-add them to generate a new invite email. Here is what I would suggest: Pelcro should only send an invite email to the user if they have not yet set up their login details (name, password, etc). For users that fail to set up their login details, Pelcro should provide some mechanism for admins to re-send the invite email or some other way for them to finish the process. Adding a collaborator to additional Pelcro accounts should not put them in βpendingβ status and should not require them to click a link for each account. Nice to have: a centralized interface where admins can view/add/remove collaborators across all Pelcro accounts without having to switch between accounts.
Search function for collaborators
Please add a search function to the collaborators view so I can easily find existing collaborators by name or email. Background: Our Pelcro accounts have over 100 collaborators. The collaborators page only displays 25 at a time, so finding an existing collaborator often requires clicking through several pages of results.
Add first and last name to membership list export
Problem Statement The Membership List export does not currently include the customer's First Name and Last Name as separate columns, even though this information is already available on the customer record. User Story As a user exporting the Membership List, I want the customer's First Name and Last Name included as separate columns so that I can easily identify and work with member information in the exported file. Definition of Done Add First Name and Last Name as separate columns in the Membership List export. Pull both values from the associated customer record. Ensure the exported values match the names stored on the customer. Existing export columns and functionality remain unchanged. Feedback: We regularly export membership lists for group/corporate licenses and send them to customers so they can review and clean up the users on their license. The membership list export currently includes each member's email address but not their first and last name. Many members use email addresses in a first-initial-plus-last-name format (e.g. jsmith@company.com), which makes it hard for customers to tell who each user is. We'd like to request that first name and last name be added as separate columns in the membership list export. Current Behavior Customer search and customer export: First and last name appear for almost all of these users. Membership list export: Only the email address is included, with no first or last name. Why We Can't Use the Customer Export Instead We no longer delete customer records, so the customer export includes users who have been removed from a license but still exist as customers. The membership list is the only accurate source of who is currently on a license, which is why we need the names in that export specifically. Requested Change Add First Name and Last Name as separate columns in the membership list export, pulled from the customer record (where the names are already stored).
Improve Coupon Management & Flexibility
π Problem Statement Pelcroβs current coupon functionality has limitations that make it difficult to support more flexible promotional campaigns. Coupon activation is primarily controlled through dates, promotions cannot be scheduled at a specific time of day, and discounts on annual plans cannot repeat across multiple years before returning to the regular subscription price. Coupon functionality should be enhanced to provide publishers with greater control over activation, scheduling, and discount duration. π‘ User Story As a Pelcro admin, I want more flexibility when configuring and managing coupons, so that I can run different promotional strategies without manual workarounds. π― Definition of Done (DoD) βοΈ Active / Inactive Toggle Add an Active/Inactive toggle for coupons. Deactivating a coupon immediately prevents it from being used. Reactivating it allows it to be used again, subject to its other conditions. Toggle is available from the coupon management UI. βοΈ Start & End Date/Time Allow admins to configure a specific start date/time and end date/time. Coupon automatically activates and expires at the configured times. Supports time-sensitive promotions such as flash sales. βοΈ Multi-Year / Repeating Annual Discounts Support repeating coupon discounts for annual plans across multiple years. Admin can specify how many annual billing cycles the discount applies to. Example: apply a discount for 4 annual renewals, then automatically renew at the planβs regular price starting in year 5. Supports use cases such as student pricing and multi-year rate-lock campaigns. βοΈ Existing coupon functionality and previously configured coupons continue to work without disruption.
Sync Membership Address with Customer Default Shipping Address
π Problem Statement Customers currently cannot update the address associated with their active memberships when they change their default shipping address, particularly when the custom UI does not expose the memberships view. This requires customers to contact Customer Service to make the change. π‘ User Story As a user, I want active memberships to automatically use the customerβs default shipping address when it is changed, so that customers can update their membership address without needing to contact Customer Service. π― Definition of Done (DoD) β οΈWhen a customer changes their default shipping address, the new address is automatically assigned to their active membership(s). β The behavior can be enabled/configured through the appropriate Pelcro setting.
Consumer Data Platform/CDP
π Problem Statement As a publisher, I experience paywall targeting as a fixed attribute list set inside each individual paywall, which results in audiences I cannot express β anonymous readers with more than five page views in the last 30 days, for instance β receiving the same meter and gate as everyone else. π‘ User Story As a publisher, I want to define paywall targeting as a Pelcro segment rather than per-paywall attributes, so that an audience is described once and reused across paywalls. As a publisher, I want every attribute available in today's paywall targeting to also exist as a segment condition, so that deprecating paywall-level targeting costs me no capability I have now. As a publisher, I want to select a segment when I create a paywall, so that the paywall applies only to readers in that segment. [TBD: one segment per paywall, or several] As a publisher, I want to build segments over anonymous visitors from referral source and page-view frequency, so that I can target readers I know nothing else about. π― Definition of Done (DoD) β Given the segment builder, when a publisher creates a segment, then every attribute usable in paywall targeting today β country, platform, tag, URL, adblock β is available as a condition. β Given a paywall, when a publisher configures targeting, then they select a segment, and the per-paywall attribute fields are deprecated in the UI. β Given a reader in a targeted segment, when they load an article, then that paywall's frequency_limit and type_of_paywall apply instead of the untargeted paywall. β Given each segment condition type, we should make sure the data will be available and can be evaluated client-side at paywall time. β Given a paywall is displayed, when Paywall Displayed is logged, then the matched segment ID and applied meter limit are recorded. β This solution will include the following limitations: anonymous identity is per-browser and resets on cookie clear; activity events are logged-in only and retained 3 months; geo is country-level at decision time; per-segment products, plans and campaigns out of scope.
Trigger Renewal/Expiration by Shipments Remaining for Print Subscriptions
π Problem Statement As a publisher managing shipment-based print subscriptions, renewal and expiration are tied to end_date/renewal_date, which don't reflect actual shipments remaining. π‘ User Story As a publisher, I want auto-renewing (or scheduled-phase) shipment-based subscriptions to activate renewal automatically once shipments remaining hits 0, so subscribers aren't held to an unrelated date. As a publisher, I want non-auto-renewing shipment-based subscriptions to be marked expired once shipments remaining hits 0, so expiration reflects actual fulfillment status. π― Definition of Done (DoD) Given a print subscription is auto-renewing or has a scheduled renewal phase, when shipments remaining reaches 0, then renewal activates regardless of end_date or renewal_date. Given a print subscription is non-auto-renewing with no scheduled renewal phase, when shipments remaining reaches 0, then the subscription is marked expired. Given an existing print subscription currently tracked by end_date/renewal_date, when this change ships, then it is migrated to shipment-count-based renewal/expiration logic. This change will impact API / SDK, specifically shipment-based subscription renewal and expiration logic. This solution will include the following limitations: applies only to pure print subscriptions (no print+digital combined pricing plans); end_date and renewal_date are not used as renewal/expiration triggers for shipment-based subscriptions; manual early-activation override is out of scope (superseded by automatic shipment-count trigger).
[Merged] Customizable Invoice Due Date
[Merged into Configurable Invoice Due Dates for Subscriptions] π Problem Statement The default due date for subscription invoices is currently fixed at 30 days and cannot be customized. We need the ability to set a different default due date for all future subscription invoices. π‘ User Story As a user, I want to configure the default due date for subscription invoices so that I can choose a payment period that fits our billing workflow. π― Definition of Done (DoD) β οΈ Add an option to configure the default due date for subscription invoices, with options such as 30, 60, or 90 days. β The selected setting should apply to all future subscription invoices.
Add Test Send Option for Automation Emails
π Problem Statement The Send Email (via Pelcro) automation currently only provides a basic preview and does not offer a test-send option using a real customer from the segment. This makes it difficult to verify how dynamic variables, such as {{customer.magic_link}}, will render before activating the automation for a live segment. π‘ User Story As a user setting up an automation email, I want to send a test email using a real sample customer from the segment so that I can validate the email's final rendering and dynamic variables before activating the automation. π― Definition of Done (DoD) β Add a test-send option to the Send Email (via Pelcro) automation that allows users to send a test email using a selected/sample customer from the segment.
[Merged] Allow Partial Refunds for Prepaid Invoices / Advance Payments
[Merged into Improve/Add Controls to Refund Processing] π Problem Statement Pelcro currently only supports full refunds for future phases/prepaid invoices. This prevents users/admins from applying a partial refund when they need to retroactively discount a future order. As a workaround, we have been processing these refunds directly through Stripe, but refunds processed outside Pelcro do not create the corresponding credit note and therefore are not reflected correctly in the deferred revenue accounting. π‘ User Story As a user, I want to be able to issue partial refunds on prepaid invoices/future orders directly through Pelcro so that I can apply partial discounts or refunds while keeping the related accounting records accurate. π― Definition of Done (DoD) Users can issue a partial refund against a prepaid/advance invoice through Pelcro. The partial refund creates the appropriate accounting records, including the corresponding credit note and deferred revenue adjustment.