Happy New Year, folks . I hope you all had a fantastic holiday and enjoyed some quality family time.
Jumping into 2025, I’ve recently been using a lot of the standard Dataverse Activity tables and figured I’d do a little blog post about it. Keeping it short and sweet today.
Dataverse Out of the Box
Often when Power Platform Dataverse is not used as a data source for a solution, standard out-of-the-box Dataverse functionality sometimes flies under the radar. The common introduction to Power Platform is through Canvas apps using SharePoint. Although this can be cost-effective for certain projects, there is so much more to Power Platform than just apps. That’s where we dive into some out-of-the-box Dataverse tables, specifically the standard Activity tables functionality.
When you spin up a new Dataverse enabled Power Platform environment, a variety of standard preconfigured tables come along with the environment instance. Common tables such as the Accounts table, Contact table, and various other tables you may see in a Dynamics 365 app can be utilised in Power Platform solutions using a Power Apps license. Today, I’m exploring some standard activity tables.

Shedding Light on Dataverse Activity Tables
A Dataverse enabled instance comes with a variety of activity tables. Activity tables are tables that hold task-related records associated with an account and/or contact. Some common activity tables include Appointment, Email, Invite, Phone Call, and Fax. All standard Dataverse tables are not D365 exclusive! These tables are associated with a Customer (a consolidated table of accounts and contacts) through the Regarding field. Users can create activities linked to a customer and assign the activity to other users in the solution. If I create a task activity for an account, I can assign it to another person in my team. When I open that account’s record in my app, I can also see the task in the account’s timeline.

Timeline Control
Within a Model-Driven app, developers can add a timeline control to a page. The Timeline control consolidates the aforementioned activity tables as well as the notes tables into a single sequential timeline for users to see. This allows for us to glance over account and contact activity when interacting with a record. When adding a Timeline control to your app, you can also disable Activity tables you don’t need in your solution and can configure how you would like users to engage with the control. You can configure the sort order of activities, how you want the layout to look, how many activities you would like to show, and you can even adjust the controls filter options. My personal favourite is the feature that lets you know what you have missed. It’s great for summarising missed activities.

Account-Contact Activity Association
Another great feature about activity tables is the ability to auto-associate activities to accounts and contacts based on relationships. This means that if I send an email through the Email activity timeline to my contact Steve Rogers, who is a primary contact for an account called The Avengers, the email activity will reflect in the Timeline control in both The Avengers account record and Steve Rogers contact record.

Not Done Just Yet
Keeping this post short and to the point, you may notice that if you start interacting with your new timeline, some activities may not reflect fully. Activities such as emails, tasks, and appointments require some additional configuration that allows Dataverse to integrate with a users Exchange profile. That’s what I’ll be talking about in my next post.

Until then, I hope you enjoyed this post and found it insightful. If you did, feel free to buy me a coffee to help support me and my blog. Buy me a coffee.
Pingback: Dataverse Activity Tables Exchange Integration - Nati Turtledove
Pingback: Power Apps Email Tracking - Nati Turtledove
Hi Nati,
Thank you for this article.
I would like to gain a more detailed understanding of how activity tables work. If I want to link an activity table to a custom table, do I need to create a new activity table—is that correct? And if I have a Parent table → Contact (child) table relationship. Can I use the default activity table (linked to Account and Contact)? By inheritance, will the timeline on the Parent form display activities related to the associated contacts? And is it possible to configure activity tables so that users can only view activities they own?
Hi Victor, thanks for the comment.
If you want to link an activity to a new custom table, say and email to a custom Case table you created, because the email activity table already exists, all you need to do is allow your custom table to be an option when creating an activity. This can be done in the properties of your custom by going to the Advanced section and checking the “Create a new activity”. Note that once this is enabled it cannot be reversed. If you want to create a specific custom activity as well, say walk in visits as an activity, you can create that activity table and you can enable it on the timeline directly within the custom tables form.
Regarding activities and inheritance, to my knowledge, this applies to contacts, accounts and opportunities as standard tables only and you cannot configure this type of roll-up to custom tables, even with a parent-child hierarchy created. You can however build your own automation to achieve this, but you run the risk of duplicating activities.
You can restrict activities to only be read by the owner as well. This can be done through your security roles by going to the activity table and setting the privileges to User.