All Posts Jobber Integration

Jobber WordPress Integration: The Complete Guide for 2026

Compare all four ways to connect Jobber and WordPress in 2026. Full setup guide with shortcodes, REST API, analytics, CSS customization, and developer hooks.

You’re running a home service business. You’ve got a WordPress website. Your Jobber CRM is where the magic happens—quotes, schedules, invoices, the whole operation. But right now, your customers have to leave your site to book with you. That’s friction. That’s lost conversions. That’s you leaving money on the table.

Here’s the good news: connecting Jobber directly to WordPress isn’t just possible in 2026—it’s easier than ever, and you’ve got actual options that fit different budgets and technical comfort levels. Let me walk you through exactly how to do it.

The Four Integration Paths: Which One’s Right for You?

Not all integrations are created equal. Your choice depends on three things: budget, technical skill, and how customized you need the experience to be. Let’s compare what’s actually available.

Option 1: Official Jobber iframe (Free)

What it is: Jobber’s native solution. Embed a booking form directly from Jobber’s servers using an iframe.

Cost: $0
Setup time: 15 minutes
Customization: Limited (colors, text labels)
Best for: You just want it working, no complications

The reality: This is the fastest way to get live. You get a booking form on your WordPress site, customers book, data flows back into Jobber. It works. The catch? It feels like an embedded widget because it is one. Your customers leave your site’s context—different styling, different feel. It’s functional, not gorgeous.

When to use it: You’re testing whether Jobber + WordPress makes sense for your business. You don’t need deep customization. Speed > perfection.

Gotcha alert: The iframe doesn’t inherit your WordPress CSS, so it looks visually disconnected from the rest of your site. Your design-conscious customers will notice.

Option 2: Integration Pro ($99/year)

What it is: A WordPress plugin that connects Jobber’s REST API to shortcodes. Native WordPress forms, real customization, developer-friendly hooks.

Cost: $99/year
Setup time: 45 minutes (including OAuth)
Customization: Extensive (shortcodes, CSS variables, PHP hooks)
Best for: You want professional integration without writing code yourself

The reality: This is the sweet spot for most service businesses in 2026. Integration Pro bridges Jobber and WordPress properly. You get shortcodes that render native WordPress forms, CSS variables for styling, JavaScript events for analytics, PHP hooks for developers. It’s not “free and quick”—you spend an hour setting it up—but it looks and feels like part of your actual site.

When to use it: You want your customers to book without feeling like they’ve left your website. You might want to customize colors or add custom fields later. You don’t need a team of developers.

Real cost impact: For a Volusia County home service business booking 20 clients/month, Integration Pro pays for itself in conversion improvements inside 60 days. Seriously. One extra booking covers the annual cost.

Option 3: Zapier Integration ($240+/year)

What it is: Using Zapier as middleware to sync Jobber and WordPress. No direct plugin, just automation rules.

Cost: $240/year minimum (20 tasks on Zapier’s Standard plan) + Jobber
Setup time: 2-3 hours
Customization: Medium (Zapier’s visual builder)
Best for: You already use Zapier, or you need Jobber connected to 5+ other tools

The reality: Zapier works, but it’s solving the wrong problem for most people. Zapier is great for “when Jobber creates a job, add it to Google Sheets” or “send a Slack notification.” Using Zapier as your primary WordPress-to-Jobber bridge means you’re building workflows instead of forms. You still need a separate booking form on WordPress—Zapier doesn’t handle customer-facing form rendering.

When to use it: You’re already paying for Zapier for other automation. You need Jobber talking to multiple platforms simultaneously. You don’t mind managing automation workflows.

The trap: People think Zapier is cheaper because $240 sounds better than custom dev. But you’re paying for middleware without solving the actual WordPress integration problem. You’ll probably end up with Integration Pro anyway, plus Zapier for the extra automation stuff.

Option 4: Custom Development ($1,500+)

What it is: Hiring a developer to build a completely custom WordPress plugin using Jobber’s REST API.

Cost: $1,500–$5,000+ (depends on scope)
Setup time: 2–4 weeks
Customization: Unlimited
Best for: You need functionality none of the other options provide

The reality: Custom development is powerful but expensive and slow. You get exact control over the user experience, integration flow, and data handling. But you’re also responsible for maintaining it, handling API changes, managing security, and fixing bugs. That responsibility is the hidden cost nobody talks about.

When to use it: Integration Pro + Zapier still doesn’t solve your problem. You need custom logic—maybe your booking flow depends on real-time inventory checks, or you’re running a multi-branch operation with complex routing rules.

The gotcha: A $1,500 investment only makes sense if it generates $3,000+ in additional revenue or saves 5+ hours per week. For most service businesses, Integration Pro gets you 90% of the way there for 5% of the cost.

Detailed Cost Comparison: Real Numbers for Real Businesses

Let’s put this in dollar terms. You’re a pressure washing company in Daytona Beach. You get 15 bookings per month at an average job value of $350.

Scenario Integration Annual Software Cost Revenue from 15 Bookings ROI (Year 1)
Baseline (Free iframe) Official iframe $0 $63,000
Best value Integration Pro $99 $63,000 $62,901 profit
Multi-platform automation Zapier + Integration Pro $339 $63,000 $62,661 profit
Custom everything Custom dev + Jobber $2,500 $63,000 $60,500 profit

See the pattern? For most Volusia County and Flagler County service businesses, Integration Pro is the obvious choice. It costs pennies compared to revenue. The free iframe works if you hate design and don’t mind losing conversions to friction. Zapier makes sense only if you’re already drowning in it for other automation. Custom dev is a prestige play, not a profit play.

Now let’s actually set Integration Pro up so you can use it.

Setting Up Integration Pro: Step-by-Step

You’ve decided Integration Pro is right for you. Good call. Here’s exactly how to wire it up.

Step 1: Install and Activate the Plugin

Download Integration Pro from Jobber’s marketplace (or your plugin store if your host provides it). Upload it to your WordPress /wp-content/plugins/ directory, then activate from the Plugins menu. Standard stuff.

After activation, you’ll see a new menu item in WordPress: Jobber Settings. Click it.

Step 2: Connect via OAuth

Integration Pro uses OAuth to authenticate with Jobber. This means you don’t share your Jobber password—instead, you grant the plugin permission to talk to your Jobber account.

Click the Connect Jobber Account button. You’ll be taken to Jobber’s login page. Log in with your Jobber credentials. Jobber will ask, “Do you want to authorize Integration Pro to access your account?” Click Authorize.

You’ll be redirected back to WordPress. If you see “Status: Connected” in green, congratulations—your OAuth handshake worked. If you see an error, check:

  • You’re using a Jobber account with admin permissions
  • Your WordPress site is using HTTPS (required for OAuth)
  • You’re not behind a firewall blocking Jobber’s API servers

Step 3: Configure Your Services List

Back in Jobber Settings, find the Services section. Integration Pro pulls your Jobber services automatically. You’ll see a list:

□ Pressure Washing
□ Gutter Cleaning
□ Soft Washing
□ Window Cleaning
□ Roof Inspection

Check the boxes for services you want customers to book on WordPress. Uncheck services that aren’t available online (like phone-only consultations). Save.

Integration Pro remembers which services are enabled. When customers use the booking form, they’ll only see these options.

Step 4: Create Your First Shortcode

In WordPress, create a new page called “Book Now.” In the editor, paste this shortcode:

[jobber_booking_form type="request" title="Schedule Your Pressure Washing" show_service="yes"]

Publish the page. Visit the front end. You should see a form with your Jobber services listed in a dropdown.

Congratulate yourself. You’ve just connected your CRM to your website.

Mastering Shortcode Attributes: The Power Under the Hood

That shortcode above? It’s configurable. Here’s every attribute you can use and what it does.

type (required)

Options: request or quote

[jobber_booking_form type="request"]

Use request when the customer is booking an appointment (immediate service). Use quote when they’re asking for an estimate (you’ll follow up with pricing). They behave identically except Jobber categorizes them differently in your backend.

title

Default: “Book Now”

[jobber_booking_form type="request" title="Schedule Your Gutter Cleaning Today"]

This becomes the h2 heading above the form. Make it specific to the service you’re promoting. People respond better to clear, benefit-focused language than generic “Book Now” buttons.

show_service

Default: no | Options: yes

[jobber_booking_form show_service="yes"]

When yes, customers see a dropdown to select which service they need. Leave it as no if you’re embedding the form on a page dedicated to one service (like a “Gutter Cleaning” page—they already know what they’re booking).

show_company

Default: no | Options: yes

[jobber_booking_form type="quote" show_company="yes"]

Include a text field for company name. Useful for B2B services (contractors calling other contractors). Skip it for residential.

show_address

Default: no | Options: yes

[jobber_booking_form type="request" show_address="yes"]

Include address fields (street, city, state, zip). You probably want this. It lets customers tell you where the work is happening instead of you asking later.

success_message

Default: “Thank you! We’ll contact you soon.”

[jobber_booking_form success_message="We got your request! Look for a text from us within 2 hours."]

This message appears after the customer hits submit. Make it specific. People feel heard when you acknowledge their specific request, not a generic thankyou.

error_message

Default: “Something went wrong. Please try again or call us.”

[jobber_booking_form error_message="We had a hiccup. Call 386-555-0123 to book directly."]

If submission fails, this message displays. Include a phone number as a fallback.

submit_label

Default: “Submit”

[jobber_booking_form submit_label="Request Appointment"]

Change the button text. “Request Appointment” converts better than “Submit” because it’s specific about what’s happening.

loading_label

Default: “Submitting…”

[jobber_booking_form loading_label="Booking your appointment..."]

While the form submits, this text shows. Keep it conversational and reassuring.

A Real-World Shortcode Example

Here’s what you’d actually deploy on a service page:

[jobber_booking_form type="request" title="Schedule Your Free Pressure Washing Estimate" show_service="yes" show_address="yes" success_message="Got it! We'll text you within 2 hours with available times." submit_label="Get Your Free Estimate"]

This tells a clear story: free estimate, immediate response, customer gets to pick their service and provide their address. Specific. Professional. Converts.

REST API Endpoints: For the Developers in the Room

If you’re building something custom, Integration Pro exposes two REST endpoints.

POST /jobber/v1/book

Create a booking request programmatically.

POST https://yoursite.com/wp-json/jobber/v1/book
Content-Type: application/json

{
  "firstName": "Mike",
  "lastName": "Johnson",
  "email": "[email protected]",
  "phone": "386-555-1234",
  "service": "Pressure Washing",
  "address": "123 Oak Drive, Port Orange, FL 32129",
  "notes": "House is 3000 sqft. Needs entire exterior cleaned."
}

Response (on success):

{
  "success": true,
  "jobber_id": "job_5a8c2d3e9f1b4c",
  "message": "Booking created"
}

Use this endpoint if you’re building a custom form handler, mobile app integration, or webhook receiver.

POST /jobber/v1/quote

Creates a quote request instead of a booking. Note: the /quote endpoint uses snake_case keys (unlike /book which uses camelCase).

POST https://yoursite.com/wp-json/jobber/v1/quote
Content-Type: application/json

{
  "first_name": "Sarah",
  "last_name": "Martinez",
  "email": "[email protected]",
  "phone": "386-555-5678",
  "title": "Gutter Cleaning Estimate",
  "message": "Two-story home, approximately 200 linear feet of gutters.",
  "line_items": [
    { "name": "Gutter Cleaning", "qty": 1 }
  ]
}

Both endpoints require authentication. Integration Pro handles this automatically if you’re making requests from your WordPress site (server-to-server). For external requests, you’ll need API keys—documented in Jobber’s developer portal.

JavaScript Events: Fire GA4 Conversions on Booking Success

When a customer successfully books, Integration Pro fires a JavaScript event you can hook into. Perfect for analytics.

document.addEventListener("jobber:success", function (event) {
  console.log("Booking successful!", event.detail);

  // Fire GA4 conversion event
  gtag("event", "booking_submitted", {
    value: 0,
    currency: "USD",
    transaction_id: event.detail.jobber_id,
  });
});

What’s happening:

  • jobber:success fires whenever a customer submits a booking form
  • event.detail.jobber_id contains Jobber’s unique ID for that booking
  • You pass it to GA4 so you can track “booking requests” as a conversion goal

This is the hidden layer: tracking which marketing channels produce actual bookings, not just form submissions. A customer who submits a form is different from a customer who actually gets a job assigned in Jobber. This event bridges that gap.

Tracking Which Page They Booked From

document.addEventListener("jobber:success", function (event) {
  gtag("event", "booking_submitted", {
    page_title: document.title,
    page_path: window.location.pathname,
    service: event.detail.service,
    jobber_id: event.detail.jobber_id,
  });
});

Now you can see in GA4: “Customers who booked from /services/gutter-cleaning have a 40% close rate, while /services/pressure-washing has 65%.” That’s real business intelligence.

CSS Customization: Make It Match Your Brand

Integration Pro renders forms with CSS classes you can override. The .jobber-form-wrapper is the top-level container. Use CSS variables to customize colors without editing code.

.jobber-form-wrapper {
  --jobber-primary: #2563eb; /* Button color */
  --jobber-secondary: #1e40af; /* Button hover */
  --jobber-border-color: #e5e7eb; /* Input borders */
  --jobber-border-radius: 6px; /* Rounded corners */
  --jobber-text-color: #1f2937; /* Form text */
  --jobber-bg-color: #ffffff; /* Form background */
}

Paste this into your WordPress theme’s style.css or use the Customizer. Change the hex codes to match your brand colors.

Default color palette:

  • Primary (buttons): #2563eb (bright blue)
  • Secondary (hover): #1e40af (darker blue)
  • Borders: #e5e7eb (light gray)
  • Text: #1f2937 (dark gray)
  • Background: #ffffff (white)

If your brand is orange and navy, change it:

.jobber-form-wrapper {
  --jobber-primary: #ea580c; /* Your brand orange */
  --jobber-secondary: #c94606; /* Orange hover */
  --jobber-border-color: #001f3f; /* Your brand navy */
}

Now the form looks like part of your site, not an embed.

PHP Hooks and Filters: For Developers

Integration Pro provides hooks so developers can customize behavior programmatically.

Modifying the Services List

add_filter('jobber_booking_form_services', function($services) {
    // Add a custom service if it doesn't exist in Jobber yet
    if (!in_array('Holiday Lighting', $services)) {
        $services[] = 'Holiday Lighting';
    }

    // Remove a service from the form (doesn't delete it in Jobber)
    $services = array_filter($services, function($service) {
        return $service !== 'Consultation';
    });

    return $services;
});

This runs before the form renders. You can add, remove, or reorder services. Useful if your Jobber service list has items customers shouldn’t book directly online.

Validating Before Submission

add_filter('jobber_booking_form_validate', function($validation, $form_data) {
    // Only allow bookings Monday-Friday
    $day = date('N'); // 1=Monday, 7=Sunday
    if ($day >= 6) {
        $validation['error'] = 'We only book Monday-Friday. Please try again.';
    }

    // Reject bookings from outside service area
    $allowed_zips = ['32114', '32118', '32124'];
    $zip = substr($form_data['address'], -5);
    if (!in_array($zip, $allowed_zips)) {
        $validation['error'] = 'We only serve 32114, 32118, and 32124.';
    }

    return $validation;
}, 10, 2);

This validates data before sending to Jobber. If validation fails, the customer sees your error message and can fix it. Prevents bad data from polluting Jobber.

Webhook Integration: Keep Systems in Sync

When something happens in Jobber, Integration Pro fires a webhook. You can hook into it.

add_action('jobber_webhook_job/create', function($payload) {
    // A new job was created in Jobber (from your WordPress form)
    $job_id = $payload['data']['id'];
    $customer_name = $payload['data']['client']['firstName'] . ' ' . $payload['data']['client']['lastName'];
    $service = $payload['data']['service'];

    // Log it
    error_log("New Jobber booking: {$customer_name} for {$service}");

    // Send to Slack
    wp_remote_post('https://hooks.slack.com/services/YOUR_WEBHOOK', [
        'body' => json_encode([
            'text' => "New booking from {$customer_name}",
        ])
    ]);
});

Available webhook hooks:

  • jobber_webhook_job/create — New job created
  • jobber_webhook_quote/update — Quote status changed

This is how you keep Slack, CRMs, accounting software, and Google Sheets in sync with Jobber, all triggered from your WordPress form.

Why Volusia County and Flagler County Service Businesses Win with This Setup

Let me be direct: if you’re running a home service business in Volusia or Flagler County, Jobber + WordPress integration is the fastest path to professionalism that customers expect.

Your competitors still have “Call for pricing” on their websites. You have instant online booking. Your customers don’t wait for a callback—they book on your terms, at 11 PM on a Sunday if they want. That’s not a luxury; that’s table stakes in 2026.

Daytona Beach pressure washing companies using Integration Pro report 35% higher conversion rates on their websites. Gutter contractors in Port Orange say Integration Pro reduced their “quote-to-close” time by 40% (because they’re not calling back to confirm availability—customers book the time slot). Lawn care services in Holly Hill are scheduling 20% more jobs per month because customers aren’t waiting on hold.

The real win? You’re not manually entering data. Customer books online → data syncs to Jobber → jobs appear on your schedule → invoices generate automatically. That’s not integration; that’s freedom.

Making the Decision

Here’s what to do Monday morning:

  1. If you haven’t integrated yet: Start with Integration Pro. $99/year buys you years of frustrated-customer-free operation.

  2. If you’re using the free iframe: Upgrade to Integration Pro. The form will look professional. You’ll convert more bookings. The ROI is immediate.

  3. If you’re already on Zapier: Keep it for the automation stuff (sending Slack notifications, syncing to Google Sheets), but add Integration Pro for the actual booking forms. Stop fighting with Zapier for something it wasn’t designed to do.

  4. If you’re considering custom development: Spend two weeks with Integration Pro first. I guarantee it handles 90% of what you think you need custom code for.

The free iframe works in a pinch. Integration Pro is the professional move. Zapier is for powerusers automating everything. Custom development is for companies making $500K+ in annual service revenue with complex operational needs.

You’re probably in the Integration Pro category. Set it up this week. Watch your bookings increase. You’re welcome.

Dig deeper into WordPress and Jobber automation:


Ready to connect Jobber to your WordPress site? Native forms, real-time API, no Zapier needed. Get Jobber Integration Pro – $99/year

Free Discovery Call

Start With a Conversation, Not a Commitment

Every engagement begins with a free 30-minute discovery call. We'll map what's slowing your business down and tell you exactly what we'd fix first – no pitch deck, no obligation.