Skip to main content
RapidDev - Software Development Agency
bubble-tutorial

How to integrate Zendesk in Bubble.io: Step-by-Step Guide

Integrating Zendesk with Bubble connects your app to professional customer support infrastructure. This tutorial covers setting up the Zendesk API via the API Connector, creating support tickets from Bubble workflows, syncing ticket status back to your app, and embedding the Zendesk Web Widget for live chat and help center access directly within your Bubble pages.

What you'll learn

  • How to connect to the Zendesk API via Bubble's API Connector
  • How to create Zendesk tickets from Bubble workflows
  • How to sync ticket status between Zendesk and Bubble
  • How to embed the Zendesk Web Widget in your app
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Beginner5 min read20-25 minAll Bubble plansMarch 2026RapidDev Engineering Team
TL;DR

Integrating Zendesk with Bubble connects your app to professional customer support infrastructure. This tutorial covers setting up the Zendesk API via the API Connector, creating support tickets from Bubble workflows, syncing ticket status back to your app, and embedding the Zendesk Web Widget for live chat and help center access directly within your Bubble pages.

Overview: Integrating Zendesk in Bubble

This tutorial shows you how to connect your Bubble app to Zendesk for professional customer support. You will create tickets via API, sync status updates, and embed the Zendesk widget for live chat.

Prerequisites

  • A Bubble app with the API Connector plugin
  • A Zendesk account with API access enabled
  • Your Zendesk subdomain and API token
  • Basic understanding of the API Connector in Bubble

Step-by-step guide

1

Configure the Zendesk API in the API Connector

Go to Plugins → API Connector → Add another API. Name it 'Zendesk'. Set Authentication to HTTP Basic Auth. The username is your Zendesk email with /token appended (e.g., admin@yourcompany.com/token) and the password is your API token from Zendesk Admin → Channels → API. Set the base URL to https://yoursubdomain.zendesk.com/api/v2. Add a shared header: Content-Type = application/json.

Expected result: The Zendesk API is configured with authentication in your API Connector.

2

Create tickets from Bubble workflows

Add a new call in the API Connector: 'Create Ticket', POST method, URL: /tickets.json. Set Use as to Action. Add the request body with ticket subject, description, requester email, and priority. In your Bubble app, add a Contact Support button or form. The workflow calls the Zendesk Create Ticket API with the user's input, then shows a confirmation message with the ticket number from the response.

Zendesk Create Ticket body (JSON)
1{
2 "ticket": {
3 "subject": "<subject_param>",
4 "description": "<description_param>",
5 "requester": {
6 "email": "<requester_email>"
7 },
8 "priority": "normal"
9 }
10}

Expected result: Support tickets are created in Zendesk when users submit support requests from your Bubble app.

3

Sync ticket status between Zendesk and Bubble

Create a SupportTicket Data Type in Bubble with fields: zendesk_ticket_id (text), user (User), subject (text), status (text), last_synced (date). After creating a Zendesk ticket, store the ticket ID in your Bubble database. Create a scheduled backend workflow that runs every 15 minutes, fetches ticket updates from Zendesk using a GET call to /tickets/[ticket_id].json, and updates the local status. Display ticket status on the user's support page.

Expected result: Ticket status syncs from Zendesk to your Bubble app automatically.

4

Embed the Zendesk Web Widget

The Zendesk Web Widget adds a chat button, help center search, and ticket submission directly in your app. Go to Zendesk Admin → Channels → Widget. Copy the embed script. In Bubble, add an HTML element to your reusable header (so it loads on every page) and paste the Zendesk widget script. The widget appears as a floating button in the corner of your app. Customize its appearance and behavior in the Zendesk Widget settings.

Zendesk Widget embed (HTML element)
1<script id="ze-snippet" src="https://static.zdassets.com/ekr/snippet.js?key=YOUR_ZENDESK_KEY"></script>

Expected result: The Zendesk chat widget appears on all pages of your Bubble app.

Complete working example

API Connector payload
1{
2 "API Name": "Zendesk",
3 "Authentication": "HTTP Basic Auth",
4 "Username": "admin@company.com/token (Private)",
5 "Password": "[api_token] (Private)",
6 "Base URL": "https://yoursubdomain.zendesk.com/api/v2",
7 "Calls": [
8 {
9 "Name": "Create Ticket",
10 "Method": "POST",
11 "URL": "/tickets.json",
12 "Body": {"ticket": {"subject": "<subj>", "description": "<desc>", "requester": {"email": "<email>"}, "priority": "normal"}},
13 "Use as": "Action"
14 },
15 {
16 "Name": "Get Ticket",
17 "Method": "GET",
18 "URL": "/tickets/[ticket_id].json",
19 "Use as": "Data"
20 },
21 {
22 "Name": "List User Tickets",
23 "Method": "GET",
24 "URL": "/users/[user_id]/tickets/requested.json",
25 "Use as": "Data"
26 }
27 ]
28}

Common mistakes when integrating Zendesk in Bubble.io: Step-by-Step Guide

Why it's a problem: Using the plain email as username instead of email/token format

How to avoid: Use the format: youremail@company.com/token as the username, with the API token as the password

Why it's a problem: Not storing Zendesk ticket IDs in Bubble

How to avoid: Save the Zendesk ticket ID from the creation response in a Bubble SupportTicket Data Type

Why it's a problem: Calling Zendesk API on every page load to check ticket status

How to avoid: Use a scheduled backend workflow to sync ticket status every 15-30 minutes instead

Best practices

  • Store Zendesk ticket IDs in your Bubble database for status tracking
  • Use scheduled backend workflows for status syncing instead of real-time API calls
  • Embed the Zendesk Widget for quick access to chat and help center
  • Include user context (email, account info) when creating tickets
  • Mark Zendesk API credentials as Private in the API Connector
  • Test with Zendesk sandbox environment before connecting production

Still stuck?

Copy one of these prompts to get a personalized, step-by-step explanation.

ChatGPT Prompt

I want to integrate Zendesk with my Bubble.io app so users can submit support tickets from within the app and see their ticket status. I also want the Zendesk chat widget embedded. How do I set this up?

Bubble Prompt

Set up the Zendesk API in the API Connector with basic auth. Create a support form that creates Zendesk tickets with the user's email and description. Store the ticket ID and display ticket status on a My Tickets page. Embed the Zendesk widget in the header.

Frequently asked questions

Do I need a paid Zendesk plan for API access?

Yes. API access requires a Zendesk plan that includes the API. Most paid plans (Suite Team and above) include API access. Check your plan features in Zendesk Admin.

Can I use Zendesk webhooks to push updates to Bubble?

Yes. Set up a Zendesk trigger that sends a webhook to a Bubble backend workflow endpoint whenever a ticket status changes. This provides real-time sync instead of polling.

Can the Zendesk Widget pre-fill user information?

Yes. Add JavaScript to the widget embed that sets the user's name and email from Bubble's Current User data, so they do not have to re-enter it.

What are Zendesk's API rate limits?

Zendesk allows 400-700 requests per minute depending on your plan. For most Bubble integrations, this is more than sufficient with scheduled syncing.

Can RapidDev help integrate Zendesk with Bubble?

Yes. RapidDev can set up the full Zendesk integration including ticket creation, status syncing, widget embedding, and webhook-based real-time updates for your Bubble app.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.