Rollup fields

Summarise data from related records - roll up information that lives elsewhere in Beacon

Updated over a week ago

Heads up! This is a guide for admins. If you're not an admin yet, ask your Beacon admin to promote you so you can start managing fields.

When storing data in Beacon, it's important to make sure that the right information is stored in the right kind of record. For example, you store an email address on a person record, and store an amount on a payment record.

However, what happens if you want to store the following?

  • The total amount paid across all payments - on the person record

  • The number of people attending an event - on the event record

  • The first payment ever made - on the person record

  • Or, if you want to export any of these values!

For this, you need rollup fields.

Rollup fields are fields that "roll up" (summarise) data from other related records. Currently, there are three kinds of summaries you can run:

  • Sum of values

  • Average of values

  • Count (number) of values

  • First (oldest) record

  • Last (newest) record


How to create rollup fields

  1. Navigate to a record of the type where you want the field to appear, and enter customisation mode by clicking the cog in the top right of the page

  2. Click the card where you'd like to add the rollup field

  3. Click Create new field

  4. Give your field a name, and select the field type for how you want the roll up to display

    Note: The following types of field can be rollup fields:
    Number (Sum/Average/Number of records)
    Currency (Sum/Average)
    Point to another record (First/Last record)

  5. Enable the 'Is rollup field?' toggle


  6. Select the record type that has the field you wish to summarise, which field on that record type points to this one, what type of summary you'd like and, if applicable, which field you'd like to roll up.


  7. (optional) Click to add a filter to only roll up records that match particular criteria. For example, only payments where the 'Type is Donation', or only count event attendees where their 'Status is Attended'

  8. Click Create. The field values will now be calculated in the background. Come back to this record in a minute or two (grab a cup of tea!) and you'll see the rollup value has been set.


You can now sort by, filter for, and export this field!

Note: Once you've given this a go, you might want to check out this helpful guide with examples of rollup fields, too.


Frequently asked questions

Is it possible to roll up other rollup fields?

Yes! This can sometimes be useful - for example, if you'd like to show the total amount that everyone in an organisation has paid:

  • Person: A "Total paid" field rolls up the "amount" field on the payment

  • Organisation: A "Total paid (everyone)" field rolls up the "Total paid" field on the person

Is it possible to roll up smart fields?

Again - yes!

Is it possible to roll up only records that meet certain conditions?

Yes! You can apply filters to rollup fields. For example, if you wanted to create a field called "Total donations (this year)", you would add the following filters:

Screenshot 2020-08-21 at 18.15.41

Tip: using date fields in your filters? Beacon will auto-update the rollup field's values every day at midnight.

How long do rollup fields take to recalculate?

For normal day-to-day updates of individual records, rollup fields get calculated in real-time.

If you're doing some kind of "bulk" job (e.g. bulk update, CSV import), then rollup field recalculations are queued up and done behind the scenes - so you might see a short delay of a few minutes before field values are recalculated.

Because of this, if you're using Beacon's workflows, we recommend not using rollup fields in workflow filters. (Use "related" conditions instead)

Is it possible to use rollup fields in campaign hierarchies?

Yes - read our campaign hierarchies article to learn more.

How do rollup field values handle deleted records?

Deleted records are not aggregated in rollup fields. Similarly, the "rolled up" value on a parent record will not be recalculated if the parent record is deleted.

Did this answer your question?