Charitable Documentation

Learn how to make the most of Charitable with clear, step-by-step instructions.

Automation Connect 2.0

Automation Connect turns every donation, campaign event, or form submission into a real-time trigger that sends data to any app or service via webhooks. Connect Charitable with Zapier, Make.com, Slack, HubSpot, Mailchimp, n8n, Pabbly Connect, and thousands of other platforms – no developer required.

Requirements: Pro/Elite plan and Charitable Pro 1.8.13+.

Note: If you are using Charitable Automation 1.x, we have the documentation available here.


Key Features (vs 1.x version)

  • Trigger webhooks on 17 donation, campaign, and recurring-donation events
  • Filter deliveries with conditional logic across 11 criteria fields (donor, donation, campaign, form data)
  • Customize the payload with 80+ available data fields covering donor, campaign, donation, and gateway details
  • Sign every outgoing request with HMAC-SHA256 for endpoint security
  • Send test payloads and inspect delivery responses directly from the editor
  • Start quickly with 8 pre-built platform templates (Zapier, Make.com, Slack, HubSpot, Mailchimp, n8n, Pabbly Connect, and a blank canvas)
  • Retry failed deliveries automatically via WordPress Action Scheduler
  • Manage all subscriptions from a central dashboard in the Charitable admin

Why Use Automation Connect?

Charitable Automation Connect replaces manual data entry and one-off custom integrations with a single, flexible webhook system. Instead of writing custom code every time you want to sync donor records, notify a Slack channel, or add contacts to a CRM, you configure a subscription once and it runs automatically on every matching event.


See It In Action


Requirements

  • Charitable Pro 1.8.13 or later
  • Active Charitable Pro license (Pro plan or higher)
  • WordPress 6.2 or later
  • PHP 7.4 or later

Getting Started

Installation and Activation

  1. Log in to your WordPress dashboard and go to Charitable > Extensions.
  2. Locate Automation Connect and click Activate.
  3. Once active, a new Automation item appears in the Charitable admin menu.

Creating Your First Subscription

  1. Go to Charitable > Automation in wp-admin.
  2. Click + Add New Subscription.
  3. Select a platform template or choose Start from scratch.
  4. Configure the subscription in the editor (see Usage below).
  5. Click Save to activate the subscription.

Usage

Subscription Editor

Each subscription is configured across four tabs:

Basic Tab

Set the subscription name, the target webhook URL, and the trigger event.

Available Events — Donations

EventDescription
donation_createdA new donation is submitted
donation_completedA donation reaches Completed status
donation_cancelledA donation is cancelled
donation_failedA donation payment fails
donation_refundedA donation is refunded
donation_pendingA donation is set to Pending
donation_preapprovedA donation is pre-approved

Available Events — Campaigns

EventDescription
campaign_createdA new campaign is published
campaign_updatedAn existing campaign is updated
campaign_endedA campaign reaches its end date
campaign_goal_achievedA campaign hits its fundraising goal

Available Events — Recurring Donations

EventDescription
recurring_createdA new recurring plan is created
recurring_completedA recurring payment completes
recurring_cancelledA recurring plan is cancelled
recurring_failedA recurring payment fails
recurring_pausedA recurring plan is paused
recurring_resumedA paused plan resumes

Conditions Tab

Add rules to control when the webhook fires. All rules within a group use AND logic; multiple groups use OR logic.

Available Condition Fields

FieldOperators
donation_amountis, isnot, greaterthan, less_than
donation_statusis, is_not
campaign_idis, is_not
campaign_categoryis, is_not
payment_gatewayis, is_not
donor_countryis, is_not
donor_emailis, is_not, contains
newsletter_optinis (yes/no)
donation_typeis (one-time, recurring)
recurring_periodis, is_not
custom_fieldis, is_not, contains

Payload Tab

Choose exactly which fields to include in the outgoing JSON payload. Uncheck fields you don’t need to keep payloads lean.

Donor Fields (sample)

donor_id, donor_name, donor_first_name, donor_last_name, donor_email, donor_phone, donor_address, donor_city, donor_state, donor_postcode, donor_country, donor_total_donated, donor_donation_count

Donation Fields (sample)

donation_id, donation_amount, donation_status, donation_date, donation_time, donation_currency, donation_gateway, donation_gateway_transaction_id, donation_notes, donation_type, campaign_ids, campaign_names

Campaign Fields (sample)

campaign_id, campaign_title, campaign_url, campaign_goal, campaign_donated, campaign_percent_raised, campaign_donor_count, campaign_start_date, campaign_end_date, campaign_categories

Recurring Fields (sample)

recurring_id, recurring_amount, recurring_period, recurring_frequency, recurring_start_date, recurring_status

Site/Meta Fields (sample)

site_url, site_name, event_type, delivery_timestamp, webhook_id

Test / Debug Tab

Send a test payload using real or sample data and inspect the HTTP response code, response body, and delivery time. This lets you verify your endpoint is receiving data before going live.


Platform Templates

When creating a new subscription, you can start from one of eight pre-built templates. Each template pre-fills the event trigger and, where applicable, adds sensible default conditions.

TemplateDefault EventNotes
Zapierdonation_createdPre-configured for Webhooks by Zapier Catch Hook
Make.comdonation_createdPre-configured for Custom Webhook module
n8ndonation_createdPre-configured for n8n Webhook node
Pabbly Connectdonation_createdPre-configured for Pabbly webhook trigger
HubSpotdonation_createdPre-configured for HubSpot workflow webhook
Mailchimpdonation_createdAdds newsletter opt-in condition by default
Slackdonation_createdPre-configured for Slack Incoming Webhooks
Start from scratch(none)Full control over all settings

Webhook Delivery

Request Format

Webhooks are delivered as HTTP POST requests with a JSON body and the following headers:

HeaderValue
Content-Typeapplication/json
X-WP-Webhook-SignatureHMAC-SHA256 signature
X-WP-Webhook-EventEvent slug (e.g., donation_created)
X-WP-Webhook-IDSubscription post ID

Signature Verification

Every request includes an X-WP-Webhook-Signature header. The signature is a lowercase hex HMAC-SHA256 of the raw JSON payload body, keyed with the subscription’s secret key.

To verify in PHP:

$signature = hash_hmac( 'sha256', $raw_body, $secret_key );
$is_valid   = hash_equals( $signature, $received_signature );

Retry Behavior

Failed deliveries (non-2xx responses or connection errors) are retried automatically using WordPress Action Scheduler. The retry schedule uses exponential backoff. After the maximum number of retries, the delivery is marked as permanently failed and logged.


Customization

CSS

The Automation Connect admin UI inherits standard Charitable and WordPress admin styles. No frontend CSS is output.

Template Overrides

Automation Connect has no public-facing templates. All output is JSON payloads delivered server-side.


Troubleshooting

Webhook is not being delivered

Check the following in order: 1. Confirm the subscription is saved and the event type matches what you expect (e.g., donation_completed, not donation_created). 2. Verify the webhook URL is publicly accessible — local localhost URLs will not work from a live server. 3. Check Charitable > Tools > Logs for delivery errors, filtering by source charitable-automation-connect.

The test payload sent successfully but live events are not triggering

Conditions may be filtering out live events. Open the Conditions tab and review each rule. Temporarily disable all conditions to confirm the webhook fires, then re-add conditions one at a time.

Payload fields are missing from the JSON

Uncheck and re-check the relevant fields in the Payload tab, then save. Fields added to Charitable via third-party plugins may need to be registered using the charitable_automation_connect_payload_fields filter (see Developer Resources).

License notice is appearing in the admin

Automation Connect 2.0 requires an active Charitable Pro license at the Pro plan level or above. If you see a license notice, verify your license is active at Charitable > Settings > Licenses and that your plan is Pro or higher.


Developer Resources

Hooks and Filters

Payload

  • charitable_automation_connect_payload_fields — Filter the list of available payload fields. Use this to add custom fields from your plugin or theme.
  • charitable_automation_connect_payload — Filter the payload array before delivery. Receives $payload, $subscription_id, $event.

Events

  • charitable_automation_connect_events — Filter the list of available trigger events. Add or remove event definitions.
  • charitable_automation_connect_before_deliver — Fires before a webhook is dispatched. Receives $subscription_id, $event, $payload.
  • charitable_automation_connect_after_deliver — Fires after a webhook is dispatched. Receives $subscription_id, $response, $payload.

Conditions

  • charitable_automation_connect_condition_fields — Filter available condition fields. Use this to register custom condition criteria.

Templates

  • charitable_automation_connect_templates — Filter the list of platform templates shown in the template picker. Add custom pre-configured templates.

License / Delivery

  • charitable_automation_connect_delivery_blocked — Filter whether delivery is blocked. Return false to allow delivery regardless of license state (useful for testing).

Useful Functions

  • charitable_automation_connect() — Returns the main plugin instance.
  • charitable_automation_connect()->get( 'subscriptions' ) — Returns the SubscriptionsRepositoryinstance for querying active subscriptions.

Adding Custom Payload Fields

add_filter( 'charitable_automation_connect_payload_fields', function( $fields ) {
    $fields['my_custom_field'] = array(
        'label'   => __( 'My Custom Field', 'my-plugin' ),
        'group'   => 'donor',
        'resolve' => function( $event_data ) {
            return get_user_meta( $event_data['donor_user_id'], 'my_meta_key', true );
        },
    );
    return $fields;
} );

Adding Custom Events

add_filter( 'charitable_automation_connect_events', function( $events ) {
    $events['my_custom_event'] = array(
        'label'       => __( 'My Custom Event', 'my-plugin' ),
        'group'       => 'donations',
        'description' => __( 'Fires when my custom condition occurs.', 'my-plugin' ),
    );
    return $events;
} );

Additional Resources

Still have questions? We’re here to help!

Last Modified:

What's New In Charitable

View The Latest Updates
🔔 Subscribe to get our latest updates
📧 Subscribe to Emails

Email Subscription

Join our Newsletter

We won’t spam you. We only send an email when we think it will genuinely help you. Unsubscribe at any time!

ambassadors New

🖨️ Introducing Fliers and Posters: Raise Money Away From the Screen!

A lot of peer-to-peer fundraising happens away from a screen: at the finish line of a 5K, on a school noticeboard, in an office kitchen. Charitable Ambassadors 3.4.7 adds 2 printables, a fundraiser flier carrying each fundraiser’s own story and QR code, and a recruitment poster that signs new fundraisers up. Both open as a normal web page and print straight from the browser. Why this is important:

  • 🏁 A flier for every fundraiser: Each one carries that fundraiser’s own photo, story and goal, with a QR code that opens their page rather than your main campaign.
  • 📌 A poster that recruits: It shows “Now Recruiting” above your campaign name with a large QR code that opens your sign-up form, so someone can start fundraising without waiting on a link from you.
  • 🪄 No design tool needed: Both printables render as a normal web page and print from the browser, with no PDF plugin and no designer.
  • 📄 2 flier layouts: Hand out carries the full story for giving to friends and family, and Post up carries a short hook with 5 tear-off tabs for a noticeboard.
  • 🛡️ Off until you switch it on: Fliers stay off after the update until you enable them under Charitable » Ambassadors » Other » Fliers, and only the owner or an administrator can open one.

Check out our announcement here.

Improvement Payments

💸 Introducing Tiered Rates for Fee Relief: Match the Ask to the Gift!

Fee Relief asks your donors one short question at checkout: would you like to cover the processing fee on this gift? Until now that question used a single rate for every donation on a gateway, so a $10 gift and a $500 gift were asked for the same percentage. Fee Relief 1.3.0 lets you set as many donation bands as you like, each carrying its own rate. Why this is important:

  • 🪙 Gentler on small gifts: A fixed transaction cost is a far bigger share of a $10 donation than a $500 one, so bands let you ask for less at the bottom.
  • 🎚️ As many bands as you need: Each band carries its own percentage and its own fixed amount, and the top band runs on with no upper limit.
  • 🛑 An optional ceiling: A Maximum fee field stops any donor being asked for more than a number you choose, however large the gift.
  • 🔌 Set per payment gateway: Stripe can run on four bands while Windcave and Payfast stay on a single rate, because bands belong to a gateway and not to your whole site.
  • 🛡️ Nothing changes until you say so: Your current rates stay exactly as they are until you switch Use Tiered Rates on under Charitable » Settings » Advanced » Fee Relief.

Check out our announcement here.

Donations Improvement

📊 Your Pro Dashboard Can Now Compare, Export, and Score!

Most fundraising dashboards only tell you how much you have raised. Charitable Pro 1.8.19 rebuilds the dashboard and the Reports Overview around the harder questions: whether anything is broken, whether this period beat the last one, and which single change would make the most difference today. Why this is important:

  • 📈 Every figure has a trend: Pick a period and the tiles and the chart move together, with each total shown against the previous period.
  • 🗓️ Charts that stay readable: Short ranges group donations day by day, while longer ranges group by week or month, so a full year reads as a curve instead of a flat line.
  • 🔀 Compare any 2 periods: Not just consecutive ones, so you can ask how this December did against last December. That matters because fundraising is seasonal.
  • 📤 Export the whole summary: Send the full overview out as CSV or PDF, ready for a board pack or a funder report.
  • 🎯 Score your setup for free: Have your fundraising setup scored, so the one change worth making next is the one you can see.

Check out our announcement here.

Feature New

🎟️ Introducing Charitable Events: Sell Tickets Inside Your Campaigns!

Most nonprofits sell event tickets in one tool and collect donations in another, which leaves two sets of reports and a manual match at the end of the year. Charitable Events brings both together, selling tickets through the same donation forms and payment gateways you already run in Charitable. Why this is important:

  • 🎟️ Every ticket is a donation: Ticket sales run through the gateway you already use and count toward the campaign goal, with everything managed under Charitable » Events.
  • 📱 QR check-in from any phone: Each attendee gets their own QR code on the receipt, and volunteers scan at the door through a check-in link that needs no WordPress account.
  • 🧾 Receipts ready for tax time: Give each ticket type a fair market value, and Charitable puts the correct tax-deductible amount on every donor receipt.
  • 📋 Attendee details at checkout: Ask every guest for a meal choice, shirt size, or access needs, with a separate attendee record created for each ticket.
  • 🗓️ Blocks and calendars included: Three editor blocks plus Sugar Calendar and The Events Calendar support put your events where supporters already look.

Check out our announcement here.

ai New

🚀 Unleash AI Power in Charitable!

Your AI assistant can now build, edit, and manage your Charitable fundraising campaigns directly — just by asking. With Charitable Pro adding write support for the WordPress Abilities API, tools like ChatGPT, Claude, and Cursor can handle full administrative actions safely through MCP. Why this is important:

  • 🤖 Campaign creation in plain language: Prompt your assistant with a goal like “Set up a fundraiser for the shelter with a $5,000 goal”, and it builds a real draft campaign complete with suggested donation tiers.
  • 🎨 Instant donation form tweaks: Add custom fields, change button colors, or reorder elements without diving into form settings.
  • 📝 Offline gift logging: Tell your assistant about cash or check gifts, and it will match donor emails and record transactions into your history.
  • 🛡️ Safety and control by default: Write access stays strictly off until turned on in Charitable » Tools » AI MCP, keeping read-only reporting safe by default.
  • 📜 Full audit logging: Every change made by an AI assistant is tracked under Charitable » Tools » Logs, so you always know who (or what) updated your site.

Check out our announcement here.