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:
- A Good Plan account with an active subscription
- A Zapier account (free or paid)
- Your Good Plan API key (from Dashboard → Integrations)
- 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
- Log into Zapier and click "Create Zap"
- Name it something like "Overdue Invoices to Good Plan"
Step 2: Set Up Your Trigger
- Search for your trigger app (e.g., "QuickBooks")
- Choose trigger event (e.g., "Invoice is Overdue")
- Connect your account and test the trigger
- Select a sample invoice to use
Step 3: Add Good Plan Action
- Click "+" to add an action
- Search for "Webhooks by Zapier"
- Choose "POST" as the action event
- 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
- Click "Test & Continue"
- Verify the payment plan was created in Good Plan
- 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
- In Zapier, create a new Zap
- Choose "Webhooks by Zapier" as the trigger
- Select "Catch Hook" as the event
- Copy the Custom Webhook URL (looks like
https://hooks.zapier.com/hooks/catch/...)
Step 2: Add Webhook in Good Plan
- Go to Dashboard → Integrations
- Click "Add Webhook"
- Paste your Zapier webhook URL
- Add a description: "Zapier - Slack Notifications"
- Subscribe to events you want:
- ✅ Plan Activated
- ✅ Installment Paid
- ✅ Plan Completed
- Click "Save"
Step 3: Test the Webhook
- In Good Plan, click "Test" next to your webhook
- Go back to Zapier and wait for the test data to appear
- Click "Continue" once Zapier receives the test
Step 4: Add Your Action
- Click "+" to add an action
- Search for "Slack" (or any app you want)
- Choose "Send Channel Message"
- Connect your Slack account
- 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
- Send a test to Slack
- Verify the message looks good
- 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
- Trigger: QuickBooks Invoice Overdue
- Action: Create Good Plan (Webhooks POST)
- Action: Send Slack message to #collections
- Action: Add row to Google Sheet "Active Plans"
- Action: Create task in Asana for follow-up
Filter by Amount
Only create plans for invoices over $500:
- After your trigger, add a Filter step
- Condition: Invoice Balance > 500
- Only continue if filter passes
Path by Status
Take different actions based on the event:
- Use Paths in Zapier
- Path A: If event is "plan.activated" → Slack
- Path B: If event is "plan.completed" → Update CRM
- 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 createdplan.activated- Customer accepts planplan.completed- All payments finishedplan.abandoned- Plan marked as abandonedplan.cancelled- Plan cancelledplan.written_off- Plan written offplan.reactivated- Plan reactivated
Installment Events
installment.paid- Customer reports paymentinstallment.confirmed- Business confirms paymentinstallment.extension_granted- Due date extendedinstallment.deferred- Payment deferred
Proposal Events
proposal.created- Customer proposes alternativeproposal.approved- Business approves proposalproposal.countered- Business sends counter-offerproposal.declined- Business declines proposalproposal.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__namedata__invoice__amountdata__plan__total_installments
Troubleshooting
Zap Not Triggering
- Check webhook is Active in Good Plan
- Verify the Zapier webhook URL is correct
- Check webhook delivery logs in Dashboard → Integrations
- Look for error messages in delivery logs
- Make sure your Zap is ON in Zapier
API Request Fails
- Verify your API key is correct
- Check the
Authorizationheader format:Bearer YOUR_API_KEY - Ensure customer email is valid
- Verify invoice amount is at least 1.00
- Check Zapier's error logs for details
Data Not Mapping Correctly
- Test your trigger to see available fields
- Make sure you're using the right field names
- Check for required vs optional fields
- 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
- Name Your Zaps Clearly: "QB Overdue → Good Plan" not "My Zap"
- Test Thoroughly: Always test before turning Zaps on
- Use Filters: Don't create plans for every invoice
- Monitor Your Zaps: Check Zapier task history regularly
- Set Up Error Notifications: Get emailed when Zaps fail
- Document Your Workflows: Keep notes on what each Zap does
- 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)