#Project-Level Stripe Integration
Connect your own Stripe account to automatically track your customers' subscription events and create or move leads in your pipeline.
#Prerequisites
- →A Stripe account with active subscriptions
- →Your Stripe Secret Key (found in Stripe Dashboard under Developers → API Keys)
Security
Your Stripe Secret Key is encrypted at rest and only used server-side to retrieve customer information. It is never exposed to the browser.
#1. Connect Stripe
- Go to Project Settings → Integrations → Stripe
- Enter your Stripe Secret Key
- Click Connect — the system validates the key
- Once connected, you'll see revenue analytics and subscription data
#2. Create a Stripe Listener
A listener reacts to subscription events and creates or moves leads.
- Click Add Listener
- Choose an Event Type:
- Subscription Created — when a new subscription starts
- Subscription Updated — when a subscription changes (e.g. plan upgrade)
- Subscription Canceled — when a subscription is canceled
3. Select a Target Pipeline Stage for matched leads.
4. Save the listener. You'll receive a Webhook URL and a Webhook Secret.
#3. Set Up the Stripe Webhook
In your Stripe Dashboard:
- Go to Developers → Webhooks
- Click Add endpoint
- Configure:
- Endpoint URL: Paste the Webhook URL from TheVibeCRM
- Events to send: Select the relevant subscription event:
customer.subscription.created,customer.subscription.updated,customer.subscription.deleted - Add a custom header: Key:
x-webhook-secret, Value: Paste the Webhook Secret from TheVibeCRM
webhook-url — text
https://app.thevibecrm.com/api/webhooks/stripe-integration/{listenerId}4. Save the endpoint.
#4. How It Works
flow — text
┌──────────────┐ Subscription event ┌──────────────────┐ Lead matched ┌─────────────┐
│ Stripe │ ─────────────────────▶ │ TheVibeCRM │ ────────────────▶ │ Pipeline │
│ Account │ POST webhook with │ Webhook API │ By customer │ Stage │
│ │ x-webhook-secret │ │ email │ │
└──────────────┘ └──────────────────┘ └─────────────┘- A subscription event occurs in Stripe (created, updated, or canceled)
- Stripe fires an HTTP POST to the TheVibeCRM webhook endpoint
- The webhook secret is verified
- Only the event type matching the listener's configuration is processed
- The customer's email is resolved from the Stripe subscription
- If a lead with that email exists in your project, it is moved to the target stage
- If no lead exists, a new lead is created with the customer's email, placed in the target stage with source "Stripe" and recurrence "Recurring"
#Stripe Analytics
Once connected, your project dashboard shows:
- Monthly Recurring Revenue (MRR)
- Active subscriptions count
- Recent charges
#Troubleshooting
| Issue | Solution |
|---|---|
| "Invalid webhook secret" (401) | Ensure the x-webhook-secret header value matches exactly |
| "Listener not found or inactive" (404) | Verify the listener ID and that it's active |
| "Stripe key not configured" (500) | Re-enter your Stripe Secret Key in integrations |
| Lead not created / "skipped: no_email" | The Stripe customer must have an email address set |
| Wrong event processed | Ensure you selected the correct event type in both the listener and Stripe webhook |