Skip to main content

Fundraise Up

The Fundraise Up integration copies donations and recurring plans from your Fundraise Up account into Allegro and matches them to audience members by email address. Each matched member gets a donor profile: whether they give once or on a schedule, how much and how often, and the state of each recurring plan.

Allegro receives new activity through a Fundraise Up webhook as it happens, and can read your full history with a backfill.

Turn on the Fundraise Up package under Organization Settings → Packages first. The settings page then appears at Organization Settings → Fundraise Up, and each property gets a Fundraise Up page in its own settings.

Connect an API key​

  1. In Fundraise Up, go to Settings → API keys and create a key with these permissions:

    SectionData typePermission
    Test data (test mode) or Live dataDonations, Recurring plansRead
    Live dataCampaignsRead

    Fundraise Up only has live campaigns, so a key used in test mode still needs Read for Campaigns under Live data. Allegro uses campaigns to find the key's accounts and to list campaigns for the filter.

  2. In Allegro, open Organization Settings → Fundraise Up and paste the key into API key.

  3. Turn on Test mode if the key is for Fundraise Up's test data rather than live donations.

  4. Click Save changes.

Allegro checks the key's permissions with Fundraise Up before saving it. If a permission is missing, the error under the field names it and nothing is saved. If Fundraise Up is busy, try again in a minute.

The key is write-only: after saving, the field shows that a value is stored but never shows the key itself. Enter a new key to replace it, or click remove it to delete it on the next save.

note

After a new key is saved, Allegro finds the Fundraise Up accounts it covers in the background. If the key's account has no campaigns yet, the page says so and no donations match until it has one. Every backfill checks the accounts again, so run Sync now after the account creates its first campaign.

Choose campaigns​

By default every campaign counts. To count only some of them, open Campaigns and pick the campaigns to include. Donations and plans to other campaigns are still stored, but they do not appear in donor profiles.

The campaign list loads from Fundraise Up after the page opens. If Fundraise Up cannot be reached, the campaigns you already saved are listed by ID so you can still remove them.

Create the webhook in Fundraise Up​

The Webhook section shows the URL Fundraise Up should call. Click Copy to copy it.

  1. In Fundraise Up, go to Settings → Webhooks and create a webhook.
  2. Paste the URL from Allegro.
  3. Subscribe to the donation and recurring plan events.
  4. Copy the signing secret Fundraise Up shows, paste it into Signing secret in Allegro, and click Save changes.

Allegro rejects any webhook it cannot verify with the signing secret, so webhooks do nothing until the secret is saved.

The URL uses your organization's canonical domain, for example https://members.acme.com/api/webhooks/fundraiseup. If you add or change a custom domain, the URL on this page changes with it. Update the webhook in Fundraise Up to match.

Fundraise Up disables failing webhooks

Fundraise Up turns a webhook off after 48 hours of failed deliveries, and Allegro cannot see that. The Last webhook time in the Sync section is your signal: if it stops moving while donations are coming in, check the webhook in Fundraise Up.

Properties​

Each property chooses where its Fundraise Up data comes from on its own Fundraise Up settings page.

ModeWhat it does
InheritUses the organization's connection. This is the default. The page shows the organization's webhook URL and sync status.
CustomUses the property's own API key, campaigns and webhook. The page shows the same Connection, Webhook and Sync sections as the organization page, and the webhook URL uses the property's domain.
OffTakes no Fundraise Up data for the property.

A property on its own connection keeps its donor profiles separate from the organization's. A property that inherits reads the organization's profiles.

Sync and backfill​

The Sync section shows:

  • when the last webhook arrived,
  • the status of the latest backfill, when it started or finished, how many donations and recurring plans it read, and its error if it failed,
  • the newest 25 log entries, with a link to the member each entry matched.

Click Sync now to read every donation and recurring plan from Fundraise Up again. Use it after connecting a key for the first time. Changing campaigns or a property's connection rebuilds donor profiles on its own, without a sync. The page updates while the sync runs.

Switching Test mode starts a full backfill of the new mode on its own and clears the donations and plans Allegro stored for the old mode, unless another connection still reads them. Donor profiles are rebuilt when the backfill finishes, so members only have test or only live data, never both.

Sync now runs once every 15 minutes per connection and is disabled while a sync is running. The section says when you can use it again.

A backfill reads Fundraise Up a page at a time and respects Fundraise Up's rate limit, so a large account can take a while. If it stops partway, the next run resumes where it left off.

note

Your engineering team can also run a backfill from the command line with php artisan fundraiseup:backfill, optionally limited to one connection (org or a property slug) and to records created since a date with --since.

Donor profile fields​

Only succeeded, unrefunded donations count toward amounts, counts and dates. Amounts are in the account's default currency.

FieldDescription
donor_statusrecurring when any plan is active, scheduled, retrying or paused; lapsed when the member has plans and none are live; one_time when the member has donations and no plans.
donation_typeThe live plan's frequency, such as monthly, otherwise one_time.
first_donation_atThe date of the member's first counted donation.
last_donation_atThe date of the member's most recent counted donation.
last_donation_amountThe amount of the most recent counted donation.
lifetime_amountThe total of all counted donations.
donation_countThe number of counted donations.
currencyThe currency the amounts are in.
recurring_amountThe amount of the most recently started live plan.
recurring_started_atWhen that plan started.
recurring_next_installment_atWhen that plan charges next.
recurring_ended_atWhen the member's last plan ended, if none is live.
cancellation_reasonWhy that plan ended, if Fundraise Up recorded a reason.
plansEvery recurring plan for the member, keyed by plan ID, with its status, frequency, amount, currency, campaign and dates.
account_ids, supporter_idsThe Fundraise Up account and supporter IDs the profile was built from.
livemodeWhether the profile comes from live or test data.
synced_atWhen Allegro last rebuilt the profile.

A member with no counted donations and no plans has no Fundraise Up profile.

Known gaps​

  • Plan endings arrive with the next backfill. Fundraise Up does not send webhooks when a plan fails, completes or pauses, so those changes appear after the next backfill.
  • Email changes in Fundraise Up. When a supporter changes their email in Fundraise Up, their next donation matches the member with the new email. Earlier donations stay with the old member, and a backfill does not move them.
  • Shared rate limit. Two keys on the same Fundraise Up account share Fundraise Up's rate limit. Their backfills slow down and retry rather than run side by side.
  • Disabled webhooks. Allegro cannot tell when Fundraise Up turns a webhook off. Watch the Last webhook time.