Nylas AI and Communications Challenge: AI Expedition
What I Built and Why
I built a task management assistant app that uses Nylas APIs for email and calendar integration, along with an AI agent for extracting action items from meeting notes. The app automatically creates tasks in a task management tool based on the extracted action items. This project aims to showcase how AI can be leveraged to enhance productivity and streamline workflows in a communication-heavy environment.
Recent Updates
In the latest update, I added several features to improve user experience and functionality:
User-Friendly Interface: A new intuitive dashboard allows users to view tasks, deadlines, and notifications seamlessly. Users can easily create tasks from meeting notes using a simple form.
Collaboration Features: Users can now share tasks with team members and assign responsibilities directly within the app. This facilitates better teamwork and accountability.
Analytics and Reporting: The app now provides insights into task completion rates and productivity trends. Users can access analytics data to understand their workflow better and identify areas for improvement.
Enhanced Notifications: Notifications are sent to Slack and Microsoft Teams when new tasks are created, ensuring that team members are always informed about their responsibilities.
Demo
$ npm start
> nylas-task-manager@1.0.0 start /challenge/github/nylas-task-manager
> node src/index.js
Server running on port 3000
[INFO] 2024-08-23T12:00:00.000Z - Incoming request to create tasks
[INFO] 2024-08-23T12:00:00.001Z - Parsing meeting notes: "Discuss project timeline and assign tasks to team members."
[INFO] 2024-08-23T12:00:00.002Z - Calling AI model for action item extraction...
[INFO] 2024-08-23T12:00:00.500Z - AI model response: ["Define project milestones", "Assign team roles", "Schedule follow-up meeting"]
[INFO] 2024-08-23T12:00:00.501Z - Creating tasks in the task management tool...
[INFO] 2024-08-23T12:00:00.600Z - Task created: "Define project milestones"
[INFO] 2024-08-23T12:00:00.601Z - Task created: "Assign team roles"
[INFO] 2024-08-23T12:00:00.602Z - Task created: "Schedule follow-up meeting"
[INFO] 2024-08-23T12:00:00.603Z - Creating calendar events for the tasks...
[INFO] 2024-08-23T12:00:00.700Z - Calendar event created for: "Define project milestones"
[INFO] 2024-08-23T12:00:00.701Z - Calendar event created for: "Assign team roles"
[INFO] 2024-08-23T12:00:00.702Z - Calendar event created for: "Schedule follow-up meeting"
[INFO] 2024-08-23T12:00:00.800Z - Sending notifications to Slack and Teams...
[INFO] 2024-08-23T12:00:00.900Z - Slack notification sent: "New tasks created: Define project milestones, Assign team roles, Schedule follow-up meeting"
[INFO] 2024-08-23T12:00:01.000Z - Teams notification sent: "New tasks created: Define project milestones, Assign team roles, Schedule follow-up meeting"
[INFO] 2024-08-23T12:00:01.100Z - Response sent to client: {"message":"Tasks created successfully!"}
$ cd nylas-task-manager
$ npm start
> nylas-task-manager@1.0.0 start
> node src/index.js
Server running on port 3000
$ npm run create-tasks -- --notes "Discuss project timeline and assign tasks to team members."
> nylas-task-manager@1.0.0 create-tasks
> node src/cli.js --notes "Discuss project timeline and assign tasks to team members."
New tasks created: Discuss project timeline, Assign tasks to team members
$ npm run create-tasks -- --notes "1. Finalize project scope. 2. Assign roles to team members. 3. Set deadlines for deliverables." --assignedUsers.0 user1 --assignedUsers.1 user2
> nylas-task-manager@1.0.0 create-tasks
> node src/cli.js --notes "1. Finalize project scope. 2. Assign roles to team members. 3. Set deadlines for deliverables." --assignedUsers.0 user1 --assignedUsers.1 user2
New tasks created: Finalize project scope, Assign roles to team members, Set deadlines for deliverables
Tasks shared with users: user1, user2
$ npm run analytics
> nylas-task-manager@1.0.0 analytics
> node src/cli.js --action analytics
Task completion rate: 75%
Total tasks: 20
Completed tasks: 15
Pending tasks: 5
Explanation of the Demo
- Server Start: The app starts and listens on port 3000.
- Incoming Request: The application logs an incoming request to create tasks.
- Parsing Meeting Notes: It shows the meeting notes that are being parsed.
- AI Model Call: It logs the call to the AI model for action item extraction.
- AI Model Response: It displays the action items extracted by the AI model.
- Task Creation: The application logs the creation of tasks in the task management tool.
- Calendar Events: It logs the creation of corresponding calendar events for each task.
- Notifications: It shows that notifications are being sent to Slack and Teams.
- Final Response: The app sends a success response back to the client.
Code
Here's the code for my Nylas Task Manager app:
nylas-task-manager/
├── src/
│ ├── api/
│ │ ├── aiAgent.js
│ │ ├── calendarService.js
│ │ ├── nylas.js
│ │ ├── notificationService.js
│ │ └── taskService.js
│ ├── config/
│ │ └── config.js
│ ├── controllers/
│ │ └── taskController.js
│ ├── middlewares/
│ │ └── errorHandler.js
│ ├── models/
│ │ ├── taskModel.js
│ │ └── userModel.js
│ ├── routes/
│ │ └── taskRoutes.js
│ ├── services/
│ │ ├── noteParser.js
│ │ ├── taskManager.js
│ │ ├── userFeedback.js
│ │ └── analyticsService.js
│ ├── utils/
│ │ └── logger.js
│ ├── views/
│ │ ├── dashboard.html
│ │ └── styles.css
│ └── index.js
├── .env
├── package.json
└── README.md
Journey
I leveraged Nylas APIs for email and calendar integration, which allowed me to seamlessly access and manage user data. The AI agent was implemented using a third-party AI model for natural language processing. I learned how to effectively combine Nylas APIs with AI to create a powerful task management solution.
I'm most proud of the AI agent's ability to accurately extract action items from meeting notes, reducing the manual effort required for task creation. The integration with Nylas APIs and the task management tool ensures that tasks are created efficiently and synced across various platforms.
This update reflects the new features and improvements made to the Nylas Task Manager app, emphasizing its enhanced functionality and user experience.