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!

Do not change renewal type to manual renewal when a subscription is cancelled

Problem Statement Currently, when an auto-renewal subscription is cancelled, Pelcro automatically changes the renewal type from Auto-Renewal to Manual Renewal. This behavior causes downstream issues, particularly with fulfillment logic, because cancelled subscriptions are no longer represented accurately based on how they were originally sold and paid for. As a result, eligible customers are excluded from fulfillment lists, even when they are still entitled to receive issues already covered by payment. Definition of Done (DoD) Renewal type remains unchanged when a subscription is cancelled. Cancellation only affects: Subscription status Renewal behavior (future billing)

Sara Habib About 7 hours ago

Role permission update

Problem Deletion authority is too broad: any collaborator can currently delete other collaborators, which should be restricted to the Account Owner only. Role capability gaps: Sales cannot create/edit plans or export data they need for quoting and reporting. Customer Service cannot void or cancel invoices, slowing issue resolution. Solution Role Key Delete Rights Other New Capabilities Account Owner Can delete collaborators and any other object. Unchanged—full control. Admin Can delete all objects except collaborators. Existing admin powers retained. Sales No delete permissions. Can create/edit plans and export customers, subscriptions, invoices, etc. Customer Service No delete permissions. Can void and cancel invoices. Other roles No changes. — Definition of Done (DoD) Permission matrix encoded in code/schema; migrations applied. Automated tests verify: Only Account Owner can delete collaborators. Admins can delete customers, subscriptions, invoices, etc., but not collaborators. Sales can create/edit plans and export objects. Customer Service can void/cancel invoices. UI and API return clear “permission denied” errors for disallowed actions. Documentation and release notes updated; feature‑flag rollout monitored for permission‑error spikes.

Rana Haleem 2 days ago

HTML Support for Paywall Titles & Subtitles

🔍 Problem Statement As a Pelcro admin, I experience limitations when configuring paywall messaging because titles and subtitles only accept plain text, which results in being unable to add anchor links or basic HTML elements (e.g. links to Terms, Privacy Policy, or contextual help) within Pelcro-powered Meter and Regular Paywalls. 💡 User Story As a Pelcro admin, I want to add HTML elements (could be initially scoped to anchor links if allowing other elements is too complicated) to the titles and subtitles of Meter and Regular Paywalls during product configuration, so that I can provide richer, contextual messaging and compliance-related links without requiring custom frontend work. 🎯 Definition of Done (DoD) A feature is done when: ✔️ Given a product paywall configuration (Meter or Regular Paywall), when an admin enters supported HTML markup in the title or subtitle fields, then the content is saved, sanitized, and rendered correctly in the Pelcro Default UI. ✔️ This change will impact UI, API, and SDK, specifically: Admin UI: Paywall configuration fields for: Meter step → title, subtitle Select step → title, subtitle Field input type updated from plain text to HTML markup. API: Product / paywall configuration endpoints updated to accept and return sanitized HTML strings. Pelcro Default UI / JS SDK: Meter and Regular Paywalls render allowed HTML elements correctly and consistently. ✔️ This solution will include the following limitations: Only explicitly allowed HTML elements are supported (initial scope limited to tags). All HTML is sanitized server-side; unsupported tags or attributes are stripped or rejected. No support for inline scripts, styles, or advanced HTML elements. Existing text-only configurations remain backward compatible and unaffected.

Galal Abdo 4 days ago

Allow Orders to Be Canceled and Refunded Before Being Marked as Paid

Problem Statement Currently, orders must be marked as paid before they can be returned or refunded. Marking an order as paid automatically triggers downstream processing, including sending the order to the warehouse fulfillment system. This creates an operational issue when a client needs to cancel and refund an order before fulfillment. Current Behavior Order must be marked as paid to enable refund/return actions Marking as paid: Triggers order processing Sends the order to the warehouse Causes the order to appear in fulfillment lists Clients must then: Contact the warehouse manually Ask them not to fulfill the order Expected Behavior Orders can be: Refunded without being marked as paid Canceled orders should: Not be sent to the warehouse Not appear in fulfillment lists

Sara Habib 4 days ago

Feature Request: full country name available in list & segment exports

Problem: Only the country code is available when exporting single lists or segments. USPS requires the full country name spelled out on an address label and will not accept only the country code. To resolve this, we have to manually add in the full country name after exporting. Example: To ship to Canada, the label must say “Canada” at the end of the address and not “CA” Solution: add the full country name column back into the list and the segments exports so that no manual manipulation is needed in order to use the lists and segments to create address labels. This feature is currently available from the fulfillment export, but not all of our lists get added to a fulfillment.

Katie 4 days ago

Append Gift Code Automatically to Gift Redemption URL

Problem Statement Currently, when a customer is gifted a subscription, the gift code is sent separately in the email. The recipient must manually copy and paste the gift code into the redemption page, which creates friction and increases the risk of user error. Proposed Feature Allow the gift redemption URL to automatically include the gift code as a query parameter, so the recipient can redeem the gift without manually entering the code. Example: https://Site.com/?view=gift-redeem&gift_code=@GIFT_CODE@ User Story As a gift recipient, I want the gift code to be pre-filled or automatically applied when I click the redemption link, So I can redeem my gift quickly without copying and pasting a code. Expected Behavior Gift redemption URLs support a gift_code query parameter When present, the gift code is automatically recognized by Pelcro The redemption flow proceeds without requiring manual code entry Business Value Reduces friction in the gift redemption flow Improves conversion and completion rates for gifted subscriptions Decreases support requests related to gift code issues

Sara Habib 7 days ago

Prevent duplicate subscriptions with subscription buckets

Problem Statement Pelcro currently allows a user to have multiple active subscriptions of the same type or within the same logical grouping, especially when subscriptions are created via the API. This creates problems for: In-app purchases (Apple App Store / Google Play), where platforms enforce one active subscription per group Web subscriptions, where users can accidentally subscribe twice Client apps, which must implement complex and fragile idempotency logic Apple and Google solve this with subscription groups that behave like radio buttons: one active subscription per group, while still allowing upgrades and downgrades. Pelcro lacks a native equivalent. User Story As a Pelcro merchant or integrator I want to define subscription groups that enforce one active subscription per user per group So that duplicate subscriptions are prevented and upgrades/downgrades are handled cleanly across web, API, and mobile platforms. Proposed Behavior (High Level) Plans may optionally belong to a Subscription Group A user may have only one active subscription per group Creating a subscription in the same group will: Trigger an upgrade/downgrade flow or Be rejected with a clear, deterministic API error (behavior TBD) Multiple Groups Are Supported A platform may define multiple independent subscription groups A user may have one active subscription per group Example: Group A: Content Access Group B: Add-on / Premium Tier → One active subscription per group is valid and supported Definition of Done (DoD) Subscription Groups can be created and managed Plans can be assigned to a group Pelcro enforces one active subscription per user per group Upgrade/downgrade within a group is supported Duplicate subscriptions in the same group are prevented at the platform level API behavior is documented and test-covered Backward compatible for plans not assigned to a group Impacted Components API – enforcement and upgrade/downgrade logic Admin UI – group and plan management JS-SDK – subscription creation flows Integrations – Apple App Store, Google Play Store, Web Checkout Business Impact Simplifies in-app purchase integrations Prevents double billing and duplicate entitlements Improves upgrade/downgrade UX Aligns Pelcro with Apple / Google subscription models

mesim 8 days ago

Durable Metered Paywall Using Device-Based Identification

Summary Improve Pelcro’s metered paywall so free-article limits cannot be easily reset using incognito mode or simple cookie clearing. Problem Metered paywalls today rely on cookies. Users can bypass them by: Opening incognito/private windows Clearing cookies or cache Reopening the same browser repeatedly This requires no technical skill and undermines meter effectiveness. Clients regularly flag this as a core weakness. Goal Reduce casual meter abuse without: Forcing login for free articles Breaking SEO or crawler access Claiming “perfect” enforcement This is about raising the bar, not eliminating all bypasses. Proposed MVP Use device / browser-based identification (probabilistic fingerprint) Persist meter across sessions in the same browser Prevent repeated incognito resets No login required Same behavior for crawlers Non-Goals Cross-device or cross-browser enforcement Blocking advanced paywall-removal tools Hard paywall behavior Impact Fewer trivial bypasses Higher publisher confidence Estimated 4–6% revenue uplift for metered publishers (customer-provided benchmark) Reduced support escalations and sales objections

Michael Ghattas 8 days ago

✨ Feature Request: Webhook Event for Payment Method Deletion (Braintree)

Affects API (webhooks) Integrations (Braintree, Stripe parity) UI (indirect – user action triggers event) Notifications (downstream client usage) Problem Statement When using Braintree as the payment provider, Pelcro does not emit a webhook event when an end user deletes a saved payment method from their account. The existing source.canceled webhook: Is Stripe-specific Requires manual cancellation on the Stripe side Is not triggered for Braintree customers As a result, clients using Braintree cannot reliably detect or respond to payment method removals. User Story As a Pelcro client using Braintree, I want to receive a webhook event when a user deletes a saved payment method, So that I can notify the user in real time, improve security transparency, and maintain feature parity across payment providers. Requested Behavior Emit a webhook event when a user deletes a payment method while using Braintree New event example: payment_method.deleted or source.deleted Alternatively: extend an existing normalized event if appropriate Provider-agnostic behavior Event should fire consistently for Stripe and Braintree Abstract provider-specific logic behind Pelcro’s API Webhook payload should include customer_id (Pelcro customer) payment_provider (braintree | stripe) payment_method_id (Pelcro + provider reference) subscription_id (nullable, if applicable) timestamp Non-sensitive payment method metadata (e.g. type, last4, brand) Trigger conditions Fired when deletion is initiated via: Pelcro UI Pelcro API JS-SDK (if applicable) Should not depend on provider-side manual actions Expected Outcome Clients can send real-time email notifications confirming payment method removal Parity between Stripe and Braintree integrations Improved security awareness, auditability, and user trust Reduced need for provider-specific workarounds Definition of Done (DoD) A normalized webhook event exists for payment method deletion Event fires for Braintree payment method removals Event behavior is consistent across Stripe and Braintree Webhook payload is documented in Pelcro API docs Event is covered by automated tests No sensitive payment data is exposed Backward compatibility is preserved for existing webhook consumers Notes / Open Questions Should this be a new canonical event (payment_method.deleted) or an extension of an existing one (source.deleted)? Should subscription context be required or optional? Any edge cases when a payment method is auto-removed (e.g. provider invalidation)?

Deiver Romero 9 days ago

Manage & Remove Saved Campaign Keys in Subscription Creation Flow

Problem Statement When creating a new subscription in Pelcro, the Campaign Key field displays a dropdown list containing a large number of previously saved entries. Over time, this list becomes cluttered and difficult to navigate. Admins are unable to: Remove outdated or unused campaign keys Manage or clean up the list Easily find the correct campaign key when creating subscriptions for customers This leads to slower workflows, higher risk of incorrect campaign attribution, and poor admin UX. User Story As an admin creating subscriptions for customers, I want to remove or manage saved Campaign Key entries, so I can quickly find and apply the correct key without scrolling through irrelevant or outdated values. Current Behavior Campaign Key dropdown auto-populates with all previously used values No option to: Delete campaign keys Archive unused keys Limit or filter the list List grows indefinitely as new keys are added Expected / Desired Behavior Admins should have the ability to manage Campaign Keys, including one or more of the following options: Option A — Admin Management View all saved Campaign Keys in a settings page Remove or deactivate unused keys Option B — UI Improvements Ability to hide inactive keys from the subscription flow Searchable / filtered dropdown

Sara Habib 14 days ago

Display One-Time Coupons at Subscription Level in Admin

Problem Statement Currently, one-time (duration = once) coupons applied at signup are not displayed on the subscription record in Pelcro Admin, even though: The discounted price is correctly applied, and There is a visible but empty “Coupon Code” field at the subscription level. This creates confusion for Customer Service teams and limits subscription-level reporting and auditing. User Story As a Customer Service team member, I want to clearly see the coupon code applied to a subscription directly in the Admin, so that I can support customers, audit discounts, and report accurately. Current Behavior (Expected but Limiting) Coupons with duration = once: Shown on invoices only Not shown on the subscription record Coupons with duration = forever: Shown on both subscription and invoice Expected / Desired Behavior Any coupon applied at signup — including one-time coupons — should be: Visible on the subscription level in Admin

Sara Habib 16 days ago