How to Implement Custom Activity Timeline in Salesforce Lightning

How to Implement Custom Activity Timeline in Salesforce Lightning

Introduction

Salesforce Lightning Components provide powerful tools to create dynamic, responsive interfaces for users. One such customization is building a custom activity timeline, which helps teams track and visualize key tasks, events, and interactions in real-time. Whether you’re looking to enhance the default functionality or create an entirely new view, implementing a custom activity timeline can greatly improve your team’s ability to manage customer activities. This blog outlines the steps required to build and implement your own custom timeline in Salesforce.

Implementing Custom Activity Timeline in Lightning Components

Custom activity timelines in Salesforce Lightning provide businesses with an enhanced way to track interactions, tasks, and activities. Implementing a custom timeline allows companies to fine-tune how data is presented and interacted with by sales teams and other departments, ultimately improving efficiency and decision-making.

Introduction to Salesforce Lightning Components and Customization

Salesforce Lightning is a modern framework for developing dynamic web apps for mobile and desktop devices. Lightning Components allow developers to build reusable components to deliver enhanced user experiences. With the help of customizable components, businesses can modify the default interface to suit their unique requirements.

Customizing the activity timeline within Lightning means you can add, remove, or modify components based on your organizational needs. This flexibility enables tailored reporting and monitoring of daily tasks, interactions, and activities.

Why Implement a Custom Activity Timeline?

The default Salesforce activity timeline offers robust functionality, but it may not meet the specific requirements of all businesses. Customizing it can help tailor the interface to match particular workflows and objectives. A custom timeline allows users to view critical data at a glance, arrange activities in order of importance, and provide deeper insights into sales and service operations.

Moreover, custom timelines empower businesses to incorporate automation, alerts, or custom labels, providing a more personalized experience. This can lead to increased productivity, as users will spend less time searching for data and more time acting on insights.

Key Features of a Custom Activity Timeline in Lightning

Custom activity timelines offer several key features that can streamline your Salesforce experience. These features include better data filtering, enhanced visibility of task status, and improved design for better readability. Timelines can be configured to highlight overdue tasks or upcoming deadlines, ensuring that important activities are always top-of-mind.

Activity Tracking for Sales Teams

Sales teams benefit immensely from a custom activity timeline by gaining a clearer view of customer interactions, task statuses, and future engagements. Custom timelines help sales representatives prioritize tasks based on deadlines and importance. For example, high-value customer follow-ups can be emphasized, ensuring that no crucial interaction is overlooked.

Enhanced User Experience with Custom Timelines

By customizing your Salesforce Lightning components, you can create a more intuitive and engaging user interface. A well-designed custom timeline will make data easier to access and navigate. This streamlined design reduces cognitive load for users, helping them focus on the most pressing tasks without feeling overwhelmed.

Prerequisites for Building Custom Activity Timelines

Before building a custom activity timeline, ensure you have the necessary development environment set up. This includes having a good understanding of Salesforce Lightning components, Apex, and basic Salesforce admin skills. A proper Salesforce development sandbox should be prepared to avoid disrupting live data during the testing phase.

Step 1: Set Up Your Salesforce Developer Environment

Before you start coding, make sure your environment is ready:

  1. Set up Salesforce CLI: You’ll need Salesforce CLI for deploying and managing your code.
  2. Install VS Code: Install Visual Studio Code and the Salesforce extensions for easy code development and debugging.
  3. Create a Developer Org: You need a Salesforce Developer Org where you’ll deploy your Lightning Web Components (LWC).

Step 2: Create an Apex Controller to Fetch Activity Data

The Apex controller will query Salesforce objects like Task and Event to fetch activity data.

apex
// Apex Controller - ActivityTimelineController.cls
public with sharing class ActivityTimelineController {
    
    @AuraEnabled(cacheable=true)
    public static List<Task> getRecentActivities(String recordId) {
        return [
            SELECT Id, Subject, Status, Priority, CreatedDate, ActivityDate
            FROM Task
            WHERE WhatId = :recordId
            ORDER BY ActivityDate DESC
            LIMIT 50
        ];
    }
}

 

  • Explanation: This method fetches the latest 50 tasks related to a particular record (using WhatId). You can modify the query to include Event objects or add more filters.

Step 3: Create the Lightning Web Component

Now, let’s create the Lightning Web Component to display the activity timeline.

  1. Create the Base Lightning Component

    In VS Code, create a new Lightning Web Component called activityTimeline by running this command:

    bash
    sfdx force:lightning:component:create --type lwc --componentname activityTimeline

     

  2. Component HTML (activityTimeline.html)

    This is the HTML structure for your custom activity timeline.

html
<template>
    <lightning-card title="Activity Timeline" icon-name="standard:task">
        <template if:true={activities.data}>
            <lightning-timeline>
                <template for:each={activities.data} for:item="activity">
                    <lightning-timeline-item key={activity.Id} title={activity.Subject}>
                        <p>Priority: {activity.Priority}</p>
                        <p>Status: {activity.Status}</p>
                        <p>Due Date: {activity.ActivityDate}</p>
                    </lightning-timeline-item>
                </template>
            </lightning-timeline>
        </template>
        <template if:true={activities.error}>
            <p>Error fetching activity data</p>
        </template>
    </lightning-card>
</template>

 

  • Explanation:
    This component renders a Lightning timeline component. It loops through the fetched activities and displays each one in a lightning-timeline-item.

Step 4: Create JavaScript to Fetch Data from Apex

Now, let’s add the JavaScript file to handle data fetching from the Apex controller.

  1. Component JavaScript (activityTimeline.js)

javascript
import { LightningElement, wire, api } from 'lwc';
import getRecentActivities from '@salesforce/apex/ActivityTimelineController.getRecentActivities';

export default class ActivityTimeline extends LightningElement {
    @api recordId;
    
    @wire(getRecentActivities, { recordId: '$recordId' })
    activities;
}

  • Explanation:
    • The @api recordId allows this component to be used on any Salesforce record page.
    • The @wire decorator is used to call the getRecentActivities Apex method, fetching activity data.

Step 5: Deploy and Add Component to a Record Page

  1. Deploy the LWC to Salesforce

    Use this command to deploy your component:

    bash
    sfdx force:source:push
    
     
  2. Add the Component to a Record Page

    In the Salesforce App Builder, add your activityTimeline component to any record page where you want the timeline to appear.

Step 6: Test and Debug

After deploying the component, test it on a record page by verifying if it shows activities for the record. Use browser developer tools and Salesforce’s debug logs to troubleshoot any issues.

Summary: 

Custom activity timelines in Salesforce Lightning provide a powerful way to optimize task tracking and customer interaction management. By tailoring the interface to meet specific needs, businesses can improve user productivity and deliver better customer service. The flexibility offered by Salesforce Lightning Components makes implementing a custom timeline both feasible and highly beneficial.

Contact Us

We would love to hear from you Please feel free to send us a message via the form