Zapier Integration Guide

Connect Good Plan to 6,000+ apps using Zapier. Automate your payment plan workflow without writing any code.

What You Can Do

  • Trigger: Automatically create payment plans when invoices become overdue in your accounting software
  • Action: Get notified in Slack when customers accept payment plans
  • Action: Add customer data to Google Sheets when plans are created
  • Action: Update your CRM when payment plans are completed
  • Action: Send SMS notifications when payments are reported

Prerequisites

Before you begin, you'll need:

  1. A Good Plan account with an active subscription
  2. A Zapier account (free or paid)
  3. Your Good Plan API key (from Dashboard → Integrations)
  4. A webhook URL from Zapier (we'll get this in Step 2)

Part 1: Create Plans with Zapier (API Trigger → Good Plan)

This lets you automatically create payment plans when something happens in another app.

Example: QuickBooks Invoice Overdue → Create Good Plan

Step 1: Create a New Zap

  1. Log into Zapier and click "Create Zap"
  2. Name it something like "Overdue Invoices to Good Plan"

Step 2: Set Up Your Trigger

  1. Search for your trigger app (e.g., "QuickBooks")
  2. Choose trigger event (e.g., "Invoice is Overdue")
  3. Connect your account and test the trigger
  4. Select a sample invoice to use

Step 3: Add Good Plan Action

  1. Click "+" to add an action
  2. Search for "Webhooks by Zapier"
  3. Choose "POST" as the action event
  4. Set up the request:

URL:

https://yourdomain.com/api/v1/plans

Method: POST

Headers:

Authorization: Bearer YOUR_API_KEY_HERE
Content-Type: application/json

Data:

{
  "customer": {
    "name": "{{Customer Name}}",
    "email": "{{Customer Email}}",
    "phone": "{{Customer Phone}}"
  },
  "invoice": {
    "amount": {{Invoice Balance}},
    "invoice_number": "{{Invoice Number}}",
    "description": "Overdue invoice from QuickBooks"
  },
  "options": {
    "intervals": ["monthly"],
    "durations": [3, 6, 12]
  }
}

Step 4: Map Your Fields

Click in each field and select the corresponding data from your trigger:

  • Customer Name → Map to customer name field from QuickBooks
  • Customer Email → Map to customer email field
  • Invoice Balance → Map to balance due field
  • Invoice Number → Map to invoice number field

Step 5: Test & Enable

  1. Click "Test & Continue"
  2. Verify the payment plan was created in Good Plan
  3. Turn your Zap ON

Other Trigger Ideas

  • Xero: When invoice is 30 days overdue
  • FreshBooks: When invoice is marked "Late"
  • Google Sheets: When new row is added to "Overdue" sheet
  • Airtable: When record enters "Collections" view
  • Stripe: When invoice payment fails

Part 2: Get Notified with Webhooks (Good Plan → Zapier)

This lets Zapier take action when events happen in Good Plan.

Example: Plan Activated → Send Slack Notification

Step 1: Create a Zapier Webhook URL

  1. In Zapier, create a new Zap
  2. Choose "Webhooks by Zapier" as the trigger
  3. Select "Catch Hook" as the event
  4. Copy the Custom Webhook URL (looks like https://hooks.zapier.com/hooks/catch/...)

Step 2: Add Webhook in Good Plan

  1. Go to Dashboard → Integrations
  2. Click "Add Webhook"
  3. Paste your Zapier webhook URL
  4. Add a description: "Zapier - Slack Notifications"
  5. Subscribe to events you want:
    • ✅ Plan Activated
    • ✅ Installment Paid
    • ✅ Plan Completed
  6. Click "Save"

Step 3: Test the Webhook

  1. In Good Plan, click "Test" next to your webhook
  2. Go back to Zapier and wait for the test data to appear
  3. Click "Continue" once Zapier receives the test

Step 4: Add Your Action

  1. Click "+" to add an action
  2. Search for "Slack" (or any app you want)
  3. Choose "Send Channel Message"
  4. Connect your Slack account
  5. Set up your message:

Channel: #payments (or your channel)

Message Text:

🎉 Payment Plan Activated!

Customer: {{data__customer__name}}
Amount: ${{data__invoice__amount}}
Payments: {{data__plan__total_installments}} × {{data__plan__payment_interval}}

View Plan: {{data__plan__customer_portal_url}}

Step 5: Test & Enable

  1. Send a test to Slack
  2. Verify the message looks good
  3. Turn your Zap ON

Other Action Ideas

When Plan Activated:

  • Send email via Gmail
  • Create task in Asana
  • Update row in Google Sheets
  • Add note to customer in HubSpot

When Installment Paid:

  • Send SMS via Twilio
  • Post to Microsoft Teams
  • Log to Airtable
  • Create event in Google Calendar

When Plan Completed:

  • Send thank you email
  • Update CRM status to "Paid in Full"
  • Archive record in accounting software
  • Send survey via Typeform

Part 3: Advanced Workflows

Multi-Step Zap: Overdue Invoice → Create Plan → Notify Team

  1. Trigger: QuickBooks Invoice Overdue
  2. Action: Create Good Plan (Webhooks POST)
  3. Action: Send Slack message to #collections
  4. Action: Add row to Google Sheet "Active Plans"
  5. Action: Create task in Asana for follow-up

Filter by Amount

Only create plans for invoices over $500:

  1. After your trigger, add a Filter step
  2. Condition: Invoice Balance > 500
  3. Only continue if filter passes

Path by Status

Take different actions based on the event:

  1. Use Paths in Zapier
  2. Path A: If event is "plan.activated" → Slack
  3. Path B: If event is "plan.completed" → Update CRM
  4. Path C: If event is "installment.paid" → Log to Sheet

Event Reference

Here are the events you can subscribe to in your webhooks:

Plan Events

  • plan.created - New plan created
  • plan.activated - Customer accepts plan
  • plan.completed - All payments finished
  • plan.abandoned - Plan marked as abandoned
  • plan.cancelled - Plan cancelled
  • plan.written_off - Plan written off
  • plan.reactivated - Plan reactivated

Installment Events

  • installment.paid - Customer reports payment
  • installment.confirmed - Business confirms payment
  • installment.extension_granted - Due date extended
  • installment.deferred - Payment deferred

Proposal Events

  • proposal.created - Customer proposes alternative
  • proposal.approved - Business approves proposal
  • proposal.countered - Business sends counter-offer
  • proposal.declined - Business declines proposal
  • proposal.counter_accepted - Customer accepts counter

Webhook Data Structure

All webhooks send data in this format:

{
  "event": "plan.activated",
  "timestamp": "2025-11-27T01:00:00Z",
  "data": {
    "plan": {
      "id": 123,
      "status": "active",
      "total_installments": 6,
      "payment_interval": "monthly",
      "customer_portal_url": "https://..."
    },
    "invoice": {
      "id": 456,
      "invoice_number": "INV-001",
      "amount": "1200.00"
    },
    "customer": {
      "id": 789,
      "name": "John Doe",
      "email": "john@example.com"
    },
    "business": {
      "id": 1,
      "name": "Your Business"
    }
  }
}

In Zapier, access these fields using dot notation:

  • data__customer__name
  • data__invoice__amount
  • data__plan__total_installments

Troubleshooting

Zap Not Triggering

  1. Check webhook is Active in Good Plan
  2. Verify the Zapier webhook URL is correct
  3. Check webhook delivery logs in Dashboard → Integrations
  4. Look for error messages in delivery logs
  5. Make sure your Zap is ON in Zapier

API Request Fails

  1. Verify your API key is correct
  2. Check the Authorization header format: Bearer YOUR_API_KEY
  3. Ensure customer email is valid
  4. Verify invoice amount is at least 1.00
  5. Check Zapier's error logs for details

Data Not Mapping Correctly

  1. Test your trigger to see available fields
  2. Make sure you're using the right field names
  3. Check for required vs optional fields
  4. Verify data types (numbers vs strings)

Rate Limits

  • Good Plan API: 60 requests per minute
  • If you hit limits, add a Delay step in Zapier
  • Or use Digest to batch multiple triggers

Best Practices

  1. Name Your Zaps Clearly: "QB Overdue → Good Plan" not "My Zap"
  2. Test Thoroughly: Always test before turning Zaps on
  3. Use Filters: Don't create plans for every invoice
  4. Monitor Your Zaps: Check Zapier task history regularly
  5. Set Up Error Notifications: Get emailed when Zaps fail
  6. Document Your Workflows: Keep notes on what each Zap does
  7. Start Simple: Get one Zap working before adding complexity

Example Zaps Library

For Accounting

  • Overdue invoices → Auto-create plans
  • Payment confirmed → Mark invoice paid
  • Plan completed → Send receipt

For Team Notifications

  • New plan → Post to Slack
  • Payment reported → Email team
  • Plan completed → Celebrate in Teams

For Reporting

  • All events → Log to Google Sheets
  • Weekly digest → Email summary
  • Monthly report → Generate PDF

For Customer Success

  • Plan activated → Welcome email
  • Payment late → Gentle reminder
  • Plan completed → Request review

Need Help?

Related Guides

  • QuickBooks Integration (coming soon)
  • Xero Integration (coming soon)
  • Slack Notifications Setup (coming soon)
  • Custom Workflows Examples (coming soon)

Need more help?

Can't find what you're looking for?

Contact Support →