inbox-zero icon indicating copy to clipboard operation
inbox-zero copied to clipboard

Support Third Party Integrations

Open elie222 opened this issue 1 year ago • 2 comments

Description

To enhance the functionality and user experience of Inbox Zero, we aim to implement support for various third-party integrations. This will allow users to seamlessly connect Inbox Zero with other productivity tools they use daily, creating a more comprehensive and efficient workflow.

Objectives

  1. Develop a framework for integrating third-party services
  2. Implement specific integrations for popular productivity tools
  3. Ensure a consistent and user-friendly experience across all integrations
  4. Enable the AI assistant to utilize these integrations in automated rules

Proposed Integrations

  1. Task Management Tools:
    • Notion
    • Todoist
  2. File Storage:
    • Google Drive
  3. Calendar Service:
    • Google Calendar

Implementation Strategy

  • Create a main integrations package that defines common interfaces and types for all integrations
  • Each specific integration will be developed as a separate package implementing the common interface
  • Develop a system for the AI assistant to discover and utilize available integrations
  • Implement UI components for users to connect and manage their integration accounts
  • Update the rule creation system to incorporate actions from integrations

Integration Usage with AI Assistant

The AI assistant will use integrations as follows:

  1. During rule creation, offer integration actions as options (e.g., "send receipts to Google Drive")
  2. When processing emails:
    • Step 1: Check if conditions are met (e.g., is it a receipt?)
    • Step 2: Execute the action using the appropriate integration (e.g., send to Google Drive)

The integration packages should provide:

  • Methods for the AI to check availability and capabilities
  • Core logic for executing actions (e.g., uploading files to Google Drive)
  • Authentication and connection management

General Guidelines for Contributors

  • Look at cal.com's integration system for inspiration on structuring the integration packages
  • Implement integrations following the common interface defined in the main integrations package
  • Create a new package for each integration in the packages/integrations/ directory
  • Follow the naming convention: packages/integrations/[service-name] (e.g., packages/integrations/notion)
  • Ensure each package has its own package.json, README.md, and appropriate TypeScript configuration
  • Provide clear documentation for each integration package

Package Structure

packages/
  integrations/
    index.ts       # Exports common interfaces and types
    notion/
      package.json
      README.md
      src/
        index.ts   # Implements the common interface for Notion
    todoist/
      ...
    google-drive/
      ...
    google-calendar/
      ...

Next Steps

  1. Create the main integrations package with the common interface
  2. Develop the system for AI assistant to discover and use integrations
  3. Implement UI components for integration account management
  4. Begin implementation of individual integrations, starting with Google Drive
  5. Update the rule creation system to incorporate integration actions
  6. Design and implement the UI for managing integrations in the app settings

Please refer to the sub-issues for specific tasks related to each integration.

elie222 avatar Sep 19 '24 19:09 elie222