Charitable Documentation

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

How to Use the Ambassadors Directory – Your Full Ambassador Roster

Requires: Charitable Pro 1.8.16+
Charitable Ambassadors 3.0.0+

Managing a peer-to-peer fundraising program means staying on top of a lot of people. The Directory is where all of them live.

Every person who has submitted at least one fundraiser shows up here. From one screen you can see who’s verified, who’s most active, who’s gone quiet, and which causes each ambassador is fundraising for. You can verify someone with one click, send them a personal email, add a brand-new ambassador without waiting for a submission, or export the whole list to a spreadsheet for your CRM.

If the Overview answers “how is the program going overall?”, the Directory answers “who are the people running it?”

The Directory list table, showing ambassadors with name, fundraiser count, verified status, raised, donors, and last activity columns

When You’d Use It

The Directory is the screen you’ll come back to again and again throughout the life of your program. Here are the most common reasons:

  • Onboarding new ambassadors: someone just signed up. Search their name, verify their account, send the welcome email.
  • Spotting champions: sort by Raised descending to surface your top performers for personal recognition.
  • Re-engaging the quiet ones: filter to Inactive and send a personal nudge.
  • Spring-cleaning: bulk-delete and anonymize accounts that never produced a real fundraiser.
  • Feeding your CRM: export selected rows or the whole list as a CSV.

How to Get There

Go to Charitable » Ambassadors » Directory. The page opens with every ambassador on your site listed in newest-active-first order. The column headers for Raised, Donors, and Last Activity are clickable to sort the list.

The Four List Views

A sub-nav above the table splits the ambassador list into four scopes, each with its own count badge so you can see at a glance how many people are in each group.

The All / Verified / Unverified / Inactive sub-nav above the Directory list
ViewWho’s in it
AllEvery ambassador, regardless of state. The default view.
VerifiedAmbassadors you’ve explicitly marked as verified. The badge shows on their public-facing pages too.
UnverifiedAmbassadors who haven’t been verified yet, which is the default state for new sign-ups.
InactiveAmbassadors with no fundraising activity in the threshold window (90 days by default). Useful for finding people to re-engage.

The Columns

Every row in the list shows the same eight columns, giving you enough context to act without having to open each profile individually.

ColumnWhat it shows
CheckboxFor bulk-selecting rows.
NameAvatar (real Gravatar if registered, colored initials otherwise), display name, and email.
FundraisersHow many fundraisers they’ve submitted, broken out by status (e.g. “3 published, 1 pending”).
VerifiedA green check if they’re verified, dash otherwise.
RaisedLifetime dollars raised across all their fundraisers.
DonorsUnique donor count across all their fundraisers.
Last ActivityMost recent ambassador action (submission, donation received, etc.).
ActionsInline buttons: View Profile, Email, View As, and more.

Searching and Filtering

The search box above the table runs a simple text search across display name, email, and user_login. Below it is a row of filters you can stack together to find exactly the group you’re looking for.

The Directory search input and the filter row showing status, recruitment, and joined-date filters
FilterWhat it does
Status mixFilter to “has published fundraisers,” “has pending submissions,” or “has no fundraisers at all.” Useful for cleanup work.
RecruitedFilter to ambassadors who came in through an invite link, or those who self-signed-up.
Joined from / toDate-range filter on the WP user’s user_registered date.
Parent campaignShow only ambassadors who fundraised for a specific cause. Pre-fills when you click into a campaign’s Recruits sub-view from elsewhere.

Filters stack, so you can combine Verified, Recruited, and a joined date range to find exactly the cohort you need. For example, “all ambassadors who came in through Invitations this year and have already been verified.”

Acting on a Row

Each row has inline action buttons in the Actions column so you can take care of the most common tasks without opening a profile first.

ActionWhat it does
ProfileOpens the full ambassador profile page.
Verify / UnverifyOne-click toggle. The badge appears immediately on their public-facing pages.
Send EmailOpens a modal where you can write a one-off email with smart-tag substitution.
Welcome EmailResends the welcome email with a one-time magic-link auto-login.
View AsOne-click login as that user so you can see what they see on /my-campaigns/ or any front-end page. Sets a return cookie so you can switch back to your admin session.

The Full Ambassador Profile

Click an ambassador’s name or the Profile action button to open their full profile. The profile is a multi-tab dashboard for a single ambassador, giving you a much deeper view than the list alone.

An ambassador profile page showing the hero with avatar, name, email, and lifetime stats above four content tabs
  • Overview – the at-a-glance card with lifetime raised, year-to-date, donor count, donation count, verified state, and recruit count.
  • Campaigns – every fundraiser this person has submitted, with status, raised, and goal.
  • Donations – every donation received across all their fundraisers, with date, donor, amount, and the specific fundraiser it went to.
  • Form Data – what they filled out on the submission form (name, location, bio, etc.), useful when you need to check a detail without having to ask them.

Two more tabs, Logs and Notes, ship in a future version. The partials are already on disk and can be enabled via the charitable_ambassadors_directory_profile_tabs filter. See Directory Profile Tabs for a full walkthrough of each tab.

Bulk Actions

Tick the checkboxes on multiple rows and pick a Bulk Action from the dropdown above the table to act on everyone at once. Bulk actions are capped at 50 rows per call by default to keep things fast, so for larger jobs work in batches.

The Bulk Actions dropdown open showing Verify, Unverify, Resend Welcome Email, Export Selected to CSV, Delete & Anonymize
ActionUse it when
Verify / UnverifyOnboarding a known batch of ambassadors at once.
Resend Welcome EmailA handful of ambassadors didn’t receive the original email, which is common after switching SMTP providers.
Export Selected to CSVFeed your CRM, build a custom report, or hand off a roster to a marketing team.
Delete & AnonymizeGDPR-style account removal. Replaces the user’s identifying fields with anonymized data so historical donations stay attributable but their personal info is gone.

Adding an Ambassador Manually

Sometimes you want to add an ambassador without waiting for them to submit a fundraiser: migrating from another platform, honoring a personal request from a major donor who wants to fundraise, or setting up a test account. Click Add Ambassador at the top right of the page.

The Add Ambassador form showing first/last name, email, and the option to send the welcome email immediately

The form takes the same fields as the public submission form. Save, and an account is created. Tick Send welcome email to fire off the same welcome message a self-signup receives, including a magic link that logs them straight into /my-campaigns/ so they don’t have to set a password first.

Exporting

The Export CSV button at the top of the page exports the currently filtered view, whichever rows you’ve narrowed to with whichever sort order is active. If you’ve filtered to “all unverified ambassadors who joined this quarter,” that’s exactly what gets exported. For a full breakdown of what’s in each column, see CSV Exports.

Deleting and Anonymizing

There are two ways to remove an ambassador from your program, depending on whether you need to preserve the historical data or wipe it entirely.

PathWhat happens
Anonymize (recommended, GDPR-friendly)The user’s login, email, display name, first and last name, and known PII metadata are replaced with anonymized values. Their fundraisers and donation history stay intact, but the person is no longer identifiable.
Hard DeleteThe WP user is deleted. Their fundraisers are re-assigned to a sentinel user named “Anonymous Ambassador” so historical donations don’t lose their parent record.

Both paths go through Charitable_Ambassadors_Directory_Delete. The sentinel user’s name and email can be customized via the charitable_ambassadors_directory_sentinel_email and charitable_ambassadors_directory_sentinel_display_name filters.

Tips Worth Keeping in Mind

A few habits that make managing the Directory a lot smoother once your program is running.

  • Run a monthly cleanup pass. Filter to Inactive with zero fundraisers, then bulk-delete and anonymize. It keeps the list accurate and your data tidy.
  • Treat the Verified badge as something that means something. Don’t auto-verify every signup. Reserve the badge for ambassadors you’ve actually vetted: real human, real cause, real intent to fundraise. It carries more weight when it’s used carefully.
  • Use View As before replying to support requests. When an ambassador reports a confusing screen, click View As to see exactly what they’re seeing. It beats five minutes of “what does your screen show?” back-and-forth every time.
  • If stats look stale, recalculate them. The Recalculate Stats action in the row menu re-runs the lifetime aggregates for a single user. There’s also a site-wide recalc button on the tools page. Both are useful after a bulk donation import.

Developer Reference

The rest of this page is for developers customizing the Directory.

Storage

Ambassador rows are standard WordPress users. The Directory adds no custom tables. The “is an ambassador” criterion is “has at least one published fundraiser, OR has the _charitable_ambassadors_directory_added_manually user-meta flag set by the Add form.”

Per-user stats (lifetime raised, donor count, last activity) are computed on the fly from donation and campaign tables, with results cached briefly per request.

Verified Flag

user_meta key: _charitable_ambassadors_verified
value:        '1' = verified, '' (empty) = not verified

Constant: Charitable_Ambassadors_Directory_Data::VERIFIED_META.

Filters

FilterDefaultPurpose
charitable_ambassadors_directory_list_columnsarray of 8 columnsAdd or remove columns from the list table.
charitable_ambassadors_directory_bulk_actionsarray of 5 actionsAdd or remove bulk actions from the dropdown.
charitable_ambassadors_directory_row_actionsarray of row metasModify the inline row-action links. Receives $row_meta, $user_id.
charitable_ambassadors_directory_action_buttonsarray of action buttonsModify the Actions column buttons. Receives $buttons, $user_id.
charitable_ambassadors_directory_user_query_argscomputedModify the WP_User_Query args before the list runs. Useful for excluding specific roles.
charitable_ambassadors_directory_profile_tabsarray of 4 tabsAdd or remove profile tabs. The Logs and Notes partials exist but are not enabled by default.
charitable_ambassadors_directory_form_data_extra_fields[]Add extra fields to the Form Data profile tab. Receives [], $user_id.
charitable_ambassadors_directory_bulk_row_cap50Max rows per bulk action call.
charitable_ambassadors_directory_inactive_threshold_days90Days of inactivity before a user appears in the Inactive view.
charitable_ambassadors_directory_welcome_ttl24 * HOUR_IN_SECONDSMagic-link lifetime for the welcome email auto-login.
charitable_ambassadors_directory_sentinel_emailanonymous@…Sentinel email used when a hard-delete reassigns a deleted user’s fundraisers.
charitable_ambassadors_directory_sentinel_display_nameAnonymous AmbassadorSentinel display name.
charitable_ambassadors_directory_anonymize_display_nameAnonymous AmbassadorDisplay name an anonymized user receives.
charitable_ambassadors_directory_anonymize_email_patternanonymous-%[email protected]Email pattern (sprintf with user ID) for anonymized users.
charitable_ambassadors_directory_anonymize_meta_keysarray of PII keysUser-meta keys cleared on anonymize.
charitable_ambassadors_directory_csv_max_rows10000Cap on CSV export rows.
charitable_ambassadors_directory_csv_cell''Provide a custom value for an unknown column key during CSV export. Receives ('', $col, $user).
charitable_ambassadors_directory_send_email_smart_tagsarray of tagsAdd smart-tag substitutions to the Send Email modal.
charitable_ambassadors_directory_send_email_max_per_hour100Throttle on Send Email per moderator per hour.
charitable_ambassadors_directory_add_fieldscomputedModify fields shown on the Add Ambassador form.

Actions

ActionArgsFires when
charitable_ambassadors_directory_verification_changed$user_id, $is_verified, $moderator_idA verify or unverify call commits.
charitable_ambassadors_directory_email_sent$user_id, $subject, $body, $moderator_idA Send Email modal submit lands.
charitable_ambassadors_directory_ambassador_added$user_id, $post_dataThe Add Ambassador form submit lands.
charitable_ambassadors_directory_before_anonymize$user_idJust before anonymization runs.
charitable_ambassadors_directory_after_anonymize$user_idJust after anonymization completes.
charitable_ambassadors_directory_before_hard_delete$user_idJust before hard delete runs.
charitable_ambassadors_directory_after_hard_delete$user_id, $sentinel_idAfter hard delete and post reassignment.

AJAX Endpoints

All on wp_ajax_ only, nonce action charitable_ambassadors_directory, capability manage_charitable_settings:

ActionPurpose
charitable_ambassadors_directory_verify_toggleToggle a user’s verified flag.
charitable_ambassadors_directory_send_welcomeRe-send the welcome email with a fresh magic link.
charitable_ambassadors_directory_send_emailSend a one-off email with smart-tag substitution.
charitable_ambassadors_directory_recalc_statsRe-run lifetime aggregates for a single user.

Form-POST Handlers

URLPurpose
admin-post.php?action=charitable_ambassadors_directory_bulkBulk Actions handler.
admin-post.php?action=charitable_ambassadors_directory_add_submitAdd Ambassador form submit.
admin-post.php?action=charitable_ambassadors_directory_manual_recalcSite-wide recalc-stats button.

Magic-Link Auto-Login

The welcome email contains a one-time magic link consumed on init priority 5 via Charitable_Ambassadors_Directory::maybe_consume_magic_link(). Default lifetime is 24 hours, filterable via charitable_ambassadors_directory_welcome_ttl.

View As

The View As action signs the moderator out and signs in as the target user, with a return cookie that lets them switch back to their original session with one click. Powered by the User Switching plugin when installed. The Directory wires the View As button through to its switch_to_user_url() helper.

Capabilities

manage_charitable_settings is required for all admin operations and is granted to Administrators by default.

Customization Examples

Add a “Phone” column to the Directory list:

add_filter( 'charitable_ambassadors_directory_list_columns', function ( $cols ) {
    $cols['phone'] = __( 'Phone', 'your-textdomain' );
    return $cols;
} );

Lower the inactive threshold to 30 days:

add_filter( 'charitable_ambassadors_directory_inactive_threshold_days', function () {
    return 30;
} );

Re-enable the Logs and Notes profile tabs:

add_filter( 'charitable_ambassadors_directory_profile_tabs', function ( $tabs, $user_id ) {
    $tabs['logs']  = [ 'label' => 'Logs',  'count' => null ];
    $tabs['notes'] = [ 'label' => 'Notes', 'count' => null ];
    return $tabs;
}, 10, 2 );

Webhook your CRM whenever an ambassador is verified:

add_action( 'charitable_ambassadors_directory_verification_changed', function ( $user_id, $is_verified, $moderator_id ) {
    if ( ! $is_verified ) {
        return;
    }
    wp_remote_post( 'https://crm.example.com/hook', [
        'body' => [
            'user_id'      => $user_id,
            'verified_at'  => time(),
            'verified_by'  => $moderator_id,
        ],
    ] );
}, 10, 3 );

Extend the welcome email magic-link lifetime to 7 days:

add_filter( 'charitable_ambassadors_directory_welcome_ttl', function () {
    return 7 * DAY_IN_SECONDS;
} );

Wrapping Up

That covers everything the Directory can do for you. Whether you’re onboarding a new batch of ambassadors, tracking down someone who needs a nudge, preparing a CRM export, or doing a quarterly cleanup pass, the Directory is your go-to screen for managing the people in your program.

If you have questions or run into anything that isn’t covered here, our support team is happy to help.

You May Also Want to Read

These are the Ambassadors docs most closely connected to the Directory. Bookmark the ones relevant to how you manage your program.

Helpful Links

🤝 Get help when you need it

Connect with Customer Support →  

📑 Find the guide you need

Browse the Documentation Hub →  

⬇️ Download proven strategies, campaign ideas, and expert tools
Get the Fundraising Kit →  

💸 Get Free Fundraising Resources
Head to the Charitable Fundraising Hub

🤔 Got questions about Charitable?
Charitable FAQs

Need help understanding non-profit terms and jargon?
See our Non-Profit Glossary

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!

automation update

⚡ Visual Automation Builder: Drag and Drop With No Code!

Charitable Automation Connect 2.3.0 introduces the Visual Automation Builder, a full-screen canvas that lays each automation out as a flow of connected cards: a trigger, optional conditions, and a list of actions that run in order.

🧩 Many actions, one trigger: Tag a donor, send an email, add a note, and fire a webhook from a single event, dragged into any order.

✉️ Act inside Charitable: New Send Email, Tag Donor, and Add Donor Note actions run with no external service required.

🔤 Merge tags: Personalize emails and notes with live fields like {first_name}, {total}, and {campaign_name}.

🔁 Apply to existing donors: Run Tag Donor and Add Donor Note against the donors you already have.

🖥️ Canvas or Simple: Switch views anytime, and automations built before 2.3.0 keep working unchanged.

Read more here.

Integration updated

📬 Introducing Brevo for Charitable: Turn Donors into Subscribers Automatically

The moment a supporter makes a gift is when they are most engaged. With the new Brevo integration for Charitable, you can automatically turn those one-time donors into long-term subscribers without touching a single spreadsheet.

Simply collect donor consent right on your donation form and start your welcome series immediately.

What’s New:

🔄 Automated Subscriber Sync: New donors who opt in are added straight to your Brevo contact list as soon as their payment clears—no manual exports or CSV imports required.

🎯 Granular Consent & Opt-In Control: Customize your checkbox label, choose whether it defaults to checked or unchecked, or turn on Brevo double opt-in to keep your list clean and compliant.

📋 Per-Campaign List Mapping: Route supporters to your global email list or map specific campaigns to targeted Brevo lists to tailor your follow-up messaging.

⚡ 5-Minute Setup: Connect instantly by pasting your Brevo API key into the Newsletter settings, map your contact fields, and start building your email list on autopilot.

Ready to grow your mailing list? Brevo is available now starting on the Charitable Plus plan—connect your account today!

recurring donations updated

💳 Introducing Card Updates: Fix Expired Cards Without Losing Subscriptions!

newExpired or updated credit cards are one of the biggest silent leaks in recurring fundraising. With Card Updates in the Recurring Donations extension, donors can now refresh their payment details directly—keeping their subscription, schedule, and giving history completely intact.

No canceled plans, no lost history, and zero administrative headache for your team.

What’s New:

⚡ 30-Second Self-Service: Donors get a dedicated “Update Card” button in their dashboard that opens Stripe’s secure, PCI-compliant Customer Portal to update card details instantly.

🔒 Scoped & Safe Access: Scoped exclusively to card updates by default, donors can’t accidentally cancel or alter their plans from inside the portal, keeping your webhooks and data in sync.

🤝 Admin-Assisted Support: Helping a donor on the phone? Open their secure Stripe portal in one click from your admin screen or generate a single-use update link to email them.

📋 Automatic Audit Trail: Every payment method update is recorded automatically with a timestamp in both system-wide logs and the individual donor’s profile.

Ready to protect your recurring revenue? Get the Plus or Pro plan and update Recurring Donations to 2.3.0+ and enable “Update Payment Method” under your Settings today!

Integration page builder

Divi Fans Rejoice! Native Divi 5 Campaign Progress Bar Module!

With our new native Divi 5 module, you can anchor your microsites with real-time fundraising stats directly on the visual canvas. Here’s how it works, and why it’s worth turning on today.

Create campaign updates that are VISUAL AND LIVE. You can also:

📊 Campaign Progress Bar: Drop a live progress bar into any Divi 5 layout and show goal progress in real time.

🎨 Deep styling controls: Easily customize the bar and track color, height, and radius to match your brand perfectly.

👁️ Visual Builder ready: Configure and preview everything directly on the Divi canvas as a first-class module.

🔁 Identical rendering: The same exact engine powers this module, meaning consistent design without legacy shims.

✅ Faster launches: Never leave the Divi 5 interface to configure shortcodes or guess how your goal labels will look.

Learn more here.

Integration page builder

👉🏻 New in Charitable: Native Elementor Widgets for Seamless Campaign Building

With native Elementor widgets, you design donation campaigns right alongside the rest of your page without touching code. Here’s how it works, and why it’s worth turning on today.

Create fundraising pages that are VISUAL, NATIVE, AND SHORTCODE-FREE. You can also:

⚡ Mini Donation: Add a compact, high-converting donation widget with preset amounts and full color control.

⏳ Campaign Countdown: Build urgency for a deadline-driven appeal, complete with optional confetti when the goal is hit.

📣 Donation Feed: Prove momentum by showing visitors the social proof of real people giving right now.

🏆 Donor Leaderboard: Celebrate top supporters with gold, silver, and bronze styling to spark friendly giving.

🖼️ Campaign Showcase: Feature multiple campaigns in a landing page grid or carousel, with search, filters, and badges.

Learn more here.