Stripe Custom Fields Integration with HighLevel

ghl, stripe, webhooks

Main product image

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.

Set Up Your Product

  1. Log into your Stripe account and navigate to the dashboard
  2. Create a test product (for this example, we’ll use a €1 test product)
  3. Go to Payment Links and click “Create a payment link”

Add Custom Fields

  1. Select your product from the dropdown
  2. Scroll down to Advanced Options
  3. 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

Step 2: Set Up HighLevel Workflow

Create New Workflow

  1. Go to HighLevel and click “Create Workflow”
  2. Start from scratch and name it “Stripe Custom Field Webhook Creation”
  3. Save the workflow

Configure Webhook Trigger

  1. Choose the trigger: “Inbound Webhook”
  2. Copy the webhook URL provided by HighLevel
  3. Save the trigger configuration

Step 3: Configure Stripe Webhook

Set Up Webhook Endpoint

  1. Go to Stripe Dashboard → Search for “Webhooks”
  2. Click “Add endpoint”
  3. Enter the HighLevel webhook URL you copied earlier
  4. Select the event: “checkout.session.completed”
  5. Save the webhook configuration

Step 4: Test the Integration

Make a Test Payment

  1. Use your Stripe payment link to make a test payment
  2. Fill in the custom fields:
    • Company Field: “Test Company”
    • Another Field: “Test Address”
  3. Use Stripe test card: 4242 4242 4242 4242
  4. Complete the payment

Verify Webhook Data

  1. Go back to HighLevel workflow builder
  2. Click “Fetch Sample Request” to see the webhook data
  3. 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

  1. Go to Settings → Custom Fields
  2. Create a new custom field: “HighLevel Another Field”
  3. 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

  1. Add action: “Internal Notification”
  2. Configure the message to include:
    • Customer name
    • Email address
    • Address information
    • Custom field values
    • Company name

Test the Complete Flow

  1. Make another test payment with different data
  2. Check HighLevel for the new contact
  3. Verify all fields are populated correctly
  4. Check the notification was sent

Complete Workflow Structure

Trigger

Actions

  1. Create Contact (automatic)
  2. Map Standard Fields:
    • Name, Email, Address, etc.
  3. Map Custom Fields:
    • Company Field → Business Name
    • Another Field → Custom Field
  4. Send Internal Notification

Data Flow Summary

Stripe Payment Link → Customer Completes Payment → Stripe Webhook → HighLevel Workflow → Contact Created + Notification Sent

Key Benefits

Troubleshooting Tips

If Webhook Doesn’t Trigger

  1. Check Stripe webhook status in dashboard
  2. Verify webhook URL is correct
  3. Ensure event type is “checkout.session.completed”
  4. Test webhook endpoint using Stripe’s test feature

If Data Doesn’t Map Correctly

  1. Check field names match exactly
  2. Verify custom field keys in Stripe
  3. Use “Fetch Sample Request” to see actual data structure
  4. Test with simple fields first, then add complexity

If Contact Isn’t Created

  1. Check workflow is published
  2. Verify webhook is active
  3. Look for error logs in HighLevel
  4. Test with standard fields before custom fields

Best Practices

  1. Always test in Stripe test mode first
  2. Use descriptive field names for easy identification
  3. Document your field mappings for future reference
  4. Set up error notifications for failed webhooks
  5. 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:

  1. Contact is automatically created in HighLevel
  2. All standard fields are populated (name, email, address)
  3. Custom fields are mapped correctly
  4. Internal notification is sent with payment details
  5. Business name appears in contact’s general info
  6. 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