New
Contact Life Events
Objective
Solution
How It Works (User Perspective)
What we'll create
Set up
Prerequisite
Component configuration
Going further
TimelineLast updated
Was this helpful?
This use case has some configuration prerequisites. Make sure you review the Set up section of this page before building !
Life Story at a Glance: Surface every major milestone in a contact's life on a single chronological view directly on the record page.
Category-Aware Visuals: Color-code events by type so the eye groups related life moments automatically.
Contextual Aging: Display the contact's age at each event to anchor the timeline in personal context.
Extensible Library: Add new event types or fields without touching code.
You'll build a single Timeline component, all without code, that surfaces a contact's life events directly on their record page. Each event renders with a category-specific icon, the contact's age at the time, and a custom description. It features:
Custom Life Event Object: Stores each milestone with type, date, and description, tied to a Contact lookup.
Type-Driven Icons: A formula maps each event type to a Salesforce Lightning Design System icon, producing a cohesive color story.
Age-at-Event Calculation: A formula field shows the contact's age at the time of each event.
Cohesive Color Palette: A five-tone palette (pink, true green, teal, blue, dark blue) groups events visually by life category.
The user opens a Contact record page in Salesforce.
The Life Events Timeline displays all the contact's milestones, sorted chronologically.
Each event shows a colored icon, the event name, the contact's age at the time, a description, and the event date.
The user clicks an event to expand it and view the full details.
The user clicks New to add a new life event directly from the timeline.
1 Custom object (Life Event)
2 Formula fields (Event Icon, Age at Event)
1 Dynamic component (Timeline)
Optionnaly : 1 screen flow to create events
Before configuring the Timeline component, set up the standard Salesforce object, fields, and formulas that the component will read from.
Create a custom object named Life Event with API name Life_Event__c.
Add the following fields:
Contact__c (Lookup to Contact)
EventType__c (Picklist)
Review the formula lower to see the values we chose for this example. Build as you need.
Date__c (Date)
Description__c (Text Area)
With the object and formulas in place, build the timeline inside the Avonni Dynamic Component Builder, then add the finished Dynamic Component to the Contact record page.
Add an action button in the Header
In the Interactions panel, set a Header action click interaction
Select the action button
Select your flow's Api Name. Make sure to set a recordId input variable equal to Component > Record Id
Add a refresh all queries on finish to make sure your users always see the most recent records
Last updated
Was this helpful?
Was this helpful?
CASE( EventType__c ,
"Birth", "standard:individual",
"Move", "standard:address",
"Job", "standard:work_order",
"Education", "standard:education",
"Health", "standard:asset_object",
"Marriage", "standard:partners",
"House", "standard:home",
"Child", "standard:household",
"standard:default"
)IF(
ISBLANK( Contact__r.Birthdate ) || ISBLANK( Date__c ),
"",
IF(
ISPICKVAL( EventType__c, "Birth" ),
"",
"Age " & TEXT( FLOOR( ( Date__c - Contact__r.Birthdate ) / 365.25 ) )
)
)