Currently Showing Mock Data

The app is displaying sample data until you complete the Kestra setup below. All features will work with real data once you configure the API keys and start Kestra.

Setup Guide

Follow these steps to connect Tria with your email and AI services

API Keys Required

SECRET_GMAIL_CLIENT_ID

Fetch & send emails via Gmail

Google Cloud ConsoleCreate OAuth Client → Copy Client ID
SECRET_GMAIL_CLIENT_SECRET

Authenticate Gmail API

Google Cloud ConsoleCreate OAuth Client → Copy Client Secret
SECRET_GMAIL_REFRESH_TOKEN

Maintain Gmail session

OAuth 2.0 PlaygroundAuthorize Gmail API → Exchange token
SECRET_GEMINI_API_KEY

AI categorization & summaries

Google AI StudioCreate API Key
SECRET_RESEND_API_KEY

Send reply emails

Resend DashboardCreate API Key
SECRET_SLACK_WEBHOOK_URL

Send summaries to Slack

Slack APICreate Incoming Webhook

Setup Commands

1

Create .env file with all keys

Store secrets locally in project root

SECRET_GMAIL_CLIENT_ID=your_client_id
SECRET_GMAIL_CLIENT_SECRET=your_client_secret
SECRET_GMAIL_REFRESH_TOKEN=your_refresh_token
SECRET_GEMINI_API_KEY=your_gemini_key
SECRET_RESEND_API_KEY=your_resend_key
SECRET_SLACK_WEBHOOK_URL=your_slack_webhook
2

docker run --rm -v $(pwd):/data kestra/kestra:latest sys env-encoder /data/.env > .envencoded

Encode secrets for Kestra

3

Update docker-compose.yaml

Add encoded secrets to Kestra service

kestra:
  image: kestra/kestra:latest
  env_file:
    - .envencoded  # Add this line
4

docker-compose up -d

Start Kestra + PostgreSQL

5

Access Kestra UI

Open browser and navigate to Kestra

http://localhost:8080
6

Login credentials

Use these credentials to access flows

Email: katare27451@gmail.com
Password: Tria2341
7

Flows auto-loaded

Flows from flows/ directory are automatically available

Using Secrets in Flows

Kestra automatically reads environment variables prefixed with SECRET_

# In your flow YAML files
tasks:
  - id: fetch_emails
    type: io.kestra.plugin.gmail.FetchEmails
    clientId: "{{ secret('GMAIL_CLIENT_ID') }}"
    clientSecret: "{{ secret('GMAIL_CLIENT_SECRET') }}"
    refreshToken: "{{ secret('GMAIL_REFRESH_TOKEN') }}"

  - id: ai_processing
    type: io.kestra.plugin.gemini.Process
    apiKey: "{{ secret('GEMINI_API_KEY') }}"

Reply Email Configuration

Important: To reply using Resend, you need to publish your domain in the Resend dashboard. Otherwise, you can only reply to yourself (same email address). Use an email like onboarding@your-domain.com

Ready to Start?

Once setup is complete, navigate back to the Inbox to see your real emails