|
| 1 | +# Timeline Component |
| 2 | +A Canvas app version of the timeline feature in a Model-Driven app, this component consolidates all the activities of a contact or account in a single timleine view, just like an MDA. |
| 3 | + |
| 4 | + |
| 5 | +## Summary |
| 6 | +This timeline component collects Notes, Emails, Appointments, Phone Calls and Tasks created as activities for a contact or account and displays them in a single timeline view, similar to the timeline feature in Model-Driven apps. The component is designed to be used in a Canvas app, and it can be customised to fit your specific needs and include addtiional activity tables. |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | +## Applies to |
| 11 | +* [Microsoft Power Apps](https://docs.microsoft.com/power-apps) |
| 12 | + |
| 13 | +## Compatibility |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | +## Contributors |
| 20 | + |
| 21 | +* [Nati Turtledove](https://github.com/NatiTurts) |
| 22 | + |
| 23 | +## Version history |
| 24 | + |
| 25 | +Version|Date|Comments |
| 26 | +-------|----|-------- |
| 27 | +1.0.0.0 | April 25, 2025 | Initial release |
| 28 | + |
| 29 | +## Features |
| 30 | +* View actvities for an Account in a Canvas app timeline. |
| 31 | +* View actvities for an Account and its related contacts in a Canvas app timeline. |
| 32 | +* View actvities for a Contact in a Canvas app timeline. |
| 33 | +* The activity timeline currently include Notes, Phone Calls, Emails, Appointments and Tasks. |
| 34 | + |
| 35 | + |
| 36 | +### View Account activities and related contact activities |
| 37 | +When you select an account in the gallery, the activities for that account will load and will also include the activities for any contacts related to that account (Just like how the timeline in an MDA works). The Related Contacts toggle will auto set to true. You can toggle between this setting to switch if you want to view activities for the accounts related contacts or not. |
| 38 | + |
| 39 | + |
| 40 | +### View Account activities only |
| 41 | +When you select an account in the gallery and you toggle the Related Contacts off, only activities for the selected account will show in the timeline. |
| 42 | + |
| 43 | + |
| 44 | +### View Contact activities only |
| 45 | +When you select a contact in the gallery, the activities for that contact will load into the timeline. |
| 46 | + |
| 47 | + |
| 48 | +### Activity Buttons |
| 49 | +Buttons in the app are included to see what code is being run for collecting data from each activity table and collating it together. |
| 50 | + |
| 51 | + |
| 52 | +## Prerequisites |
| 53 | +### Licensing |
| 54 | +* The component requires users to have a premium licensse as it uses standard Dataverse entities. |
| 55 | + |
| 56 | + |
| 57 | +### Security |
| 58 | +* Users require a minimum of user level read privileges to the following tables: |
| 59 | + * Accounts |
| 60 | + * Contacts |
| 61 | + * Teams |
| 62 | + * Users |
| 63 | + * Tasks |
| 64 | + * Email (Email Messages) |
| 65 | + * Phone Calls |
| 66 | + * Appointments |
| 67 | + * Notes |
| 68 | + |
| 69 | + |
| 70 | +## Minimal Path to Awesome |
| 71 | + |
| 72 | +* [Download](./solution/timeline-component.zip) the `.zip` from the `solution` folder |
| 73 | +* [Import](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/import-update-export-solutions) the `.zip` file using **Solutions** > **Import Solution**. |
| 74 | + |
| 75 | +### Using the source code |
| 76 | + |
| 77 | +You can also use the [Power Apps CLI](https://docs.microsoft.com/powerapps/developer/data-platform/powerapps-cli) to pack the source code by following these steps: |
| 78 | + |
| 79 | +* Clone the repository to a local drive |
| 80 | +* Pack the source files back into a solution `.zip` file: |
| 81 | + |
| 82 | + ```bash |
| 83 | + pac solution pack --zipfile pathtodestinationfile --folder pathtosourcefolder --processCanvasApps |
| 84 | + ``` |
| 85 | + |
| 86 | + Making sure to replace `pathtosourcefolder` to point to the path to this sample's `sourcecode` folder, and `pathtodestinationfile` to point to the path of this solution's `.zip` file (located under the `solution` folder) |
| 87 | +* Within **Power Apps Studio**, import the solution `.zip` file using **Solutions** > **Import Solution** and select the `.zip` file you just packed. |
| 88 | + |
| 89 | +## Help |
| 90 | + |
| 91 | +We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues. |
| 92 | + |
| 93 | +If you encounter any issues while using this sample, you can [create a new issue](https://github.com/pnp/powerapps-samples/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected&template=bug-report.yml&sample=timeline-component&authors=@NatiTurts&title=timeline-component%20-%20). |
| 94 | + |
| 95 | +For questions regarding this sample, [create a new question](https://github.com/pnp/powerapps-samples/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected&template=question.yml&sample=timeline-component&authors=@NatiTurts&title=timeline-component%20-%20). |
| 96 | + |
| 97 | +Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/powerapps-samples/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected&template=suggestion.yml&sample=timeline-component&authors=@NatiTurts&title=timeline-component%20-%20). |
| 98 | + |
| 99 | +## Disclaimer |
| 100 | + |
| 101 | +**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** |
| 102 | + |
| 103 | +<img src="https://m365-visitor-stats.azurewebsites.net/powerplatform-samples/samples/timeline-component" aria-hidden="true" /> |
0 commit comments