## Background This is team Comfortably Summed's submission for Twenty's Hacktoberfest. We built an activity summary application that can periodically send messages to the following platforms: Slack; Discord; and WhatsApp. ### Features - 🧑💻 **People & Company Tracking**: Summarizes newly created people and companies - 🎯 **Opportunity Monitoring**: Reports on new opportunities created, broken down by stage - ✅ **Task Analytics**: - Tracks task creation - Calculates on-time completion rates - Identifies team members with the most overdue tasks (the "slackers") - 🔔 **Multi-Platform Notifications**: Send reports to Slack, Discord, and/or WhatsApp - ⏰ **Configurable Time Range**: Look back any number of days ### Summary of Changes - Adds a new Twenty app called Activity Summary - Contains a single index.ts file which utilises exported functions from opportunity-creation-summariser.ts, people-creation-summariser.ts, task-creation-summariser.ts, and senders.ts - Implementation of sending a message to Slack, Discord, and WhatsApp can be found in senders.ts - Retrieval and summarising of Opportunity creation can be found in opportunity-creation-summariser.ts - Retrieval and summarising of People creation can be found in people-creation-summariser.ts - Retrieval and summarising of Task creation can be found in task-creation-summariser.ts ## Screenshots ### Message to our Slack channel <details> <summary>Screenshot</summary> <img width="326" height="242" alt="Screenshot 2025-11-01 at 22 05 30" src="https://github.com/user-attachments/assets/57c5d50b-959d-4c3f-bd7d-00f42bf545b2" /> </details> ### Message to our Discord server's channel <details> <summary>Screenshot</summary> <img width="472" height="386" alt="Screenshot 2025-11-01 at 22 06 44" src="https://github.com/user-attachments/assets/f4a38d7f-e82d-47b0-a4b3-7bcf063fa575" /> </details> ### Message to our WhatsApp number <details> <summary>Screenshot</summary> <img width="972" height="548" alt="IMG_2024" src="https://github.com/user-attachments/assets/5533fc4d-a3ee-4e11-a9e7-9cc6a96316fc" /> </details> ### App-level configuration <details> <summary>Screenshot</summary> <img width="442" height="385" alt="Screenshot 2025-11-01 at 22 02 14" src="https://github.com/user-attachments/assets/c9948f57-f22c-42a0-972f-3348f480aa30" /> </details> ### Serverless functions <details> <summary>Screenshot</summary> <img width="413" height="378" alt="Screenshot 2025-11-01 at 22 03 48" src="https://github.com/user-attachments/assets/d297967b-52ce-4690-bb04-a16d89729d94" /> </details> ### Cron configuration Default value in place due to Cron having a non-editable text input. <details> <summary>Screenshot</summary> <img width="395" height="386" alt="Screenshot 2025-11-01 at 22 08 03" src="https://github.com/user-attachments/assets/a95a708c-7136-4512-99c3-a6723adc0da5" /> </details> ## Testing Sync the application to your Twenty instance and ensure the following variables have values: - `TWENTY_API_KEY` - Your Twenty CRM API key - `DAYS_AGO` - Number of days to look back for the report Choose any of the supported platforms and you shall see a summary being sent!
39 lines
1.2 KiB
YAML
39 lines
1.2 KiB
YAML
# This file is generated by running "yarn install" inside your project.
|
|
# Manual changes might be lost - proceed with caution!
|
|
|
|
__metadata:
|
|
version: 8
|
|
cacheKey: 10c0
|
|
|
|
"@types/node@npm:^24.7.2":
|
|
version: 24.9.2
|
|
resolution: "@types/node@npm:24.9.2"
|
|
dependencies:
|
|
undici-types: "npm:~7.16.0"
|
|
checksum: 10c0/7905d43f65cee72ef475fe76316e10bbf6ac5d08a7f0f6c38f2b6285d7ca3009e8fcafc8f8a1d2bf3f55889c9c278dbb203a9081fd0cf2d6d62161703924c6fa
|
|
languageName: node
|
|
linkType: hard
|
|
|
|
"Activity Summary@workspace:.":
|
|
version: 0.0.0-use.local
|
|
resolution: "Activity Summary@workspace:."
|
|
dependencies:
|
|
"@types/node": "npm:^24.7.2"
|
|
twenty-sdk: "npm:0.0.3"
|
|
languageName: unknown
|
|
linkType: soft
|
|
|
|
"twenty-sdk@npm:0.0.3":
|
|
version: 0.0.3
|
|
resolution: "twenty-sdk@npm:0.0.3"
|
|
checksum: 10c0/0a3c85c27edb22fb50f7eb0da4f9770e85729fce05e9e0118ad0cdfc36e42425c93340a6cd1c276daf30aeeaa612db0cd905831c0a8287a31bff3da5be9b0562
|
|
languageName: node
|
|
linkType: hard
|
|
|
|
"undici-types@npm:~7.16.0":
|
|
version: 7.16.0
|
|
resolution: "undici-types@npm:7.16.0"
|
|
checksum: 10c0/3033e2f2b5c9f1504bdc5934646cb54e37ecaca0f9249c983f7b1fc2e87c6d18399ebb05dc7fd5419e02b2e915f734d872a65da2e3eeed1813951c427d33cc9a
|
|
languageName: node
|
|
linkType: hard
|