Stripe Custom Fields Integration with HighLevel
Learn how to integrate Stripe payment links with custom fields into HighLevel using webhooks for seamless data flow.
Are you using Stripe’s advanced features like custom fields for your payment links and wonder how to integrate this with your HighLevel website? Well, it’s with inbound webhooks, but it’s very complicated when you use custom fields. In this video, I’ll show you how this can be accomplished very easily.
Overview
This tutorial demonstrates how to set up a complete integration between Stripe payment links with custom fields and HighLevel using webhooks. When customers complete a payment through Stripe, their information (including custom fields) automatically flows into your HighLevel contact database.
Step 1: Create Stripe Payment Link with Custom Fields
Set Up Your Product
- Log into your Stripe account and navigate to the dashboard
- Create a test product (for this example, we’ll use a €1 test product)
- Go to Payment Links and click “Create a payment link”
Add Custom Fields
- Select your product from the dropdown
- Scroll down to Advanced Options
- Add custom fields:
- Company Field: Name it “company field” (this will be the key)
- Another Field: Name it “another field” for customer address collection
Configure Field Settings
- Set limits for each field as needed
- Save the payment link once configured
Step 2: Set Up HighLevel Workflow
Create New Workflow
- Go to HighLevel and click “Create Workflow”
- Start from scratch and name it “Stripe Custom Field Webhook Creation”
- Save the workflow
Configure Webhook Trigger
- Choose the trigger: “Inbound Webhook”
- Copy the webhook URL provided by HighLevel
- Save the trigger configuration
Step 3: Configure Stripe Webhook
Set Up Webhook Endpoint
- Go to Stripe Dashboard → Search for “Webhooks”
- Click “Add endpoint”
- Enter the HighLevel webhook URL you copied earlier
- Select the event: “checkout.session.completed”
- Save the webhook configuration
Step 4: Test the Integration
Make a Test Payment
- Use your Stripe payment link to make a test payment
- Fill in the custom fields:
- Company Field: “Test Company”
- Another Field: “Test Address”
- Use Stripe test card: 4242 4242 4242 4242
- Complete the payment
Verify Webhook Data
- Go back to HighLevel workflow builder
- Click “Fetch Sample Request” to see the webhook data
- Review the incoming data structure
Step 5: Map Data in HighLevel Workflow
Standard Fields Mapping
Map the standard Stripe fields to HighLevel contact fields:
// Standard field mappings
City = {{inbound_webhook_trigger.data.customer_details.address.city}}
Email = {{inbound_webhook_trigger.data.customer_details.email}}
Country = {{inbound_webhook_trigger.data.customer_details.address.country}}
Full Name = {{inbound_webhook_trigger.data.customer_details.name}}
Postal Code = {{inbound_webhook_trigger.data.customer_details.address.postal_code}}
Street Address = {{inbound_webhook_trigger.data.customer_details.address.line1}}
Custom Fields Mapping
Use Array Functions to extract custom field data:
// For Company Field
Business Name = {{array_functions.find(inbound_webhook_trigger.data.custom_fields, "key", "company field").text_value}}
// For Another Field
Custom Field = {{array_functions.find(inbound_webhook_trigger.data.custom_fields, "key", "another field").text_value}}
Step 6: Create HighLevel Custom Fields
Add Custom Fields in HighLevel
- Go to Settings → Custom Fields
- Create a new custom field: “HighLevel Another Field”
- Set field type as needed (text, dropdown, etc.)
Map Custom Field Data
In your workflow, map the Stripe custom field to the HighLevel custom field:
HighLevel Another Field = {{array_functions.find(inbound_webhook_trigger.data.custom_fields, "key", "another field").text_value}}
Step 7: Add Notification Action
Set Up Internal Notification
- Add action: “Internal Notification”
- Configure the message to include:
- Customer name
- Email address
- Address information
- Custom field values
- Company name
Test the Complete Flow
- Make another test payment with different data
- Check HighLevel for the new contact
- Verify all fields are populated correctly
- Check the notification was sent
Complete Workflow Structure
Trigger
- Type: Inbound Webhook
- Event: Stripe checkout.session.completed
Actions
- Create Contact (automatic)
- Map Standard Fields:
- Name, Email, Address, etc.
- Map Custom Fields:
- Company Field → Business Name
- Another Field → Custom Field
- Send Internal Notification
Data Flow Summary
Stripe Payment Link → Customer Completes Payment → Stripe Webhook → HighLevel Workflow → Contact Created + Notification Sent
Key Benefits
- Automatic Data Transfer: No manual data entry required
- Custom Field Support: Capture additional customer information
- Real-time Processing: Instant contact creation upon payment
- Error-free Integration: Eliminates data entry mistakes
- Scalable Solution: Works for any number of payments
Troubleshooting Tips
If Webhook Doesn’t Trigger
- Check Stripe webhook status in dashboard
- Verify webhook URL is correct
- Ensure event type is “checkout.session.completed”
- Test webhook endpoint using Stripe’s test feature
If Data Doesn’t Map Correctly
- Check field names match exactly
- Verify custom field keys in Stripe
- Use “Fetch Sample Request” to see actual data structure
- Test with simple fields first, then add complexity
If Contact Isn’t Created
- Check workflow is published
- Verify webhook is active
- Look for error logs in HighLevel
- Test with standard fields before custom fields
Best Practices
- Always test in Stripe test mode first
- Use descriptive field names for easy identification
- Document your field mappings for future reference
- Set up error notifications for failed webhooks
- Regularly monitor webhook delivery in Stripe dashboard
Final Result
After completing this setup, every time a customer makes a payment through your Stripe payment link:
- ✅ Contact is automatically created in HighLevel
- ✅ All standard fields are populated (name, email, address)
- ✅ Custom fields are mapped correctly
- ✅ Internal notification is sent with payment details
- ✅ Business name appears in contact’s general info
- ✅ Custom field data appears in additional info section
This creates a seamless integration between your payment processing and customer relationship management, ensuring no customer data is lost and all information flows automatically into your HighLevel system.
I hope this was useful for you! Please give me a thumbs up and don’t forget to subscribe. See you in the next video!
Resources
- Stripe Documentation: Webhooks Guide
- HighLevel Workflows: Official Documentation
- Stripe Test Cards: Test Payment Methods
- Webhook Testing: Stripe CLI