Skip to main content

Inbox Overview

Access and manage your personal Gmail and Outlook emails directly within Expedify. Reply to emails, forward to CRM contacts, and maintain seamless communication—all without leaving the platform.

Why Use Inbox?

1. Unified Email Access

  • Access Gmail and Outlook in one interface
  • Switch between providers instantly
  • No need to open multiple email clients
  • All emails in one place

2. CRM Integration

  • Forward emails to CRM contacts
  • Link conversations to deals and companies
  • Track email communications with customers
  • Maintain complete communication history

3. Professional Email Management

  • Reply and forward with HTML/plaintext support
  • Custom email signatures
  • Email tracking (opens and clicks)
  • Organized inbox interface

4. Time Saving

  • No switching between tabs or apps
  • Quick search across all emails
  • Infinite scroll for fast browsing
  • View density options for efficiency

5. Privacy & Security

  • OAuth 2.0 authentication (no password storage)
  • Automatic token refresh
  • Secure email access
  • Organization-level isolation

Key Features

Email Provider Support

Gmail Integration:

  • Full OAuth 2.0 authentication
  • Read, reply, and forward emails
  • Search within Gmail messages
  • Access inbox, sent, drafts
  • Automatic token refresh
  • Multiple account support

Outlook/Microsoft 365 Integration:

  • Microsoft Graph API integration
  • OAuth 2.0 authentication
  • Access Outlook mailbox
  • Reply and forward functionality
  • Search across Outlook emails
  • Support for multiple Outlook accounts

Inbox Interface

Provider Tabs:

  • Gmail Tab: Access all Gmail messages
  • Outlook Tab: Access all Outlook messages
  • Instant switching between providers
  • Provider-wise caching (5-minute cache duration)
  • Independent search and pagination per provider

Message List:

  • Sender name and email address
  • Subject line
  • Message snippet (preview)
  • Timestamp (relative or absolute)
  • Read/unread status
  • Infinite scroll pagination
  • Search functionality with debounce
  • Smooth skeleton loaders while loading

View Density Options:

  • Comfortable: Spacious layout with larger spacing
  • Compact: Dense layout showing more emails

Search & Filters:

  • Search by sender, subject, or content
  • Real-time search with debounce
  • Provider-specific search results
  • Clear search button

Message Detail Panel

When you click on an email, you see:

Email Header:

  • Sender name and email
  • Subject line
  • Recipients (To, CC, BCC)
  • Timestamp
  • Read/unread indicator

Email Body:

  • HTML rendering (if available)
  • Plaintext fallback
  • External image proxy (bypass CORS)
  • Responsive iframe display
  • Safe HTML sanitization

Email Actions:

  • Reply: Compose reply to sender
  • Forward: Forward to anyone (including CRM contacts)
  • Mark as Read: Update read status
  • Delete: Move to trash (provider-dependent)

Reply & Forward Functionality

Reply Modal:

What It Does:

  • Pre-fills recipient with original sender
  • Includes original subject with "Re:" prefix
  • Shows original message quoted below
  • Supports HTML and plaintext
  • Auto-signature insertion

Features:

  • Rich text editor for HTML emails
  • Plaintext option
  • CC/BCC fields
  • Email tracking toggle (opens, clicks)
  • Send from default or selected account

Forward Modal:

What It Does:

  • Blank recipient field
  • Includes original subject with "Fwd:" prefix
  • Entire original message included
  • CRM contact integration

CRM Contact Selector:

  • Search CRM contacts by name or email
  • Auto-populate email from contact record
  • Quick access to all contacts
  • Link email to contact history

Features:

  • Forward to anyone (not just CRM)
  • Multiple recipients support
  • CC/BCC options
  • Rich text or plaintext
  • Attachments preserved (if supported)

Email Account Management

Connected Accounts:

  • List all connected Gmail/Outlook accounts
  • Email address display
  • Provider type indicator
  • Default account marking
  • Active/inactive status
  • Emails sent count
  • Last used timestamp

Account Actions:

  • Connect New Account: OAuth flow for Gmail or Outlook
  • Set as Default: Choose default sending account
  • Update Signature: Custom email signature per account
  • Toggle Tracking: Enable/disable opens and clicks tracking
  • Disconnect Account: Remove email integration

Email Signature:

  • HTML signature support
  • Per-account signatures
  • Auto-append to sent emails
  • Edit anytime in Settings

Email Tracking:

  • Track Opens: Know when recipient opens email
  • Track Clicks: Track link clicks in emails
  • Per-account tracking settings
  • Privacy-conscious (can disable)

Getting Started

Prerequisites

Before using Inbox:

  1. Personal Email Account

    • Gmail account (for Gmail integration)
    • Outlook/Microsoft 365 account (for Outlook integration)
    • No special permissions required
  2. OAuth Permissions

    • Allow Expedify to access your emails
    • Read, send, and compose permissions
    • Revocable anytime from Google/Microsoft settings
  3. Browser Requirements

    • Modern browser (Chrome, Firefox, Safari, Edge)
    • Cookies enabled (for OAuth callback)
    • Pop-ups allowed (for OAuth window)

Quick Start

Step 1: Connect Your Email Account

For Gmail:

  1. Go to Settings → User Info
  2. Scroll to Email Integrations section
  3. Click Connect Gmail button
  4. Google OAuth window opens
  5. Select your Gmail account
  6. Click Allow to grant permissions
  7. Redirected back to Settings with success message

For Outlook:

  1. Go to Settings → User Info
  2. Scroll to Email Integrations section
  3. Click Connect Outlook button
  4. Microsoft login window opens
  5. Enter Outlook credentials
  6. Click Accept to grant permissions
  7. Redirected back to Settings with success message

Step 2: Access Your Inbox

  1. Go to Channel → Inbox
  2. See Gmail and Outlook tabs
  3. Default view shows Gmail (if connected)
  4. Click Outlook tab to switch providers
  5. All your emails load automatically

Step 3: Read Emails

  1. Browse emails in the message list
  2. Scroll down to load more (infinite scroll)
  3. Use search bar to find specific emails
  4. Click on any email to view details
  5. Message detail panel opens on the right

Step 4: Reply to Email

  1. Open email in detail panel
  2. Click Reply button
  3. Compose modal opens with pre-filled fields
  4. Type your reply message
  5. Toggle tracking (opens/clicks) if needed
  6. Click Send
  7. Email sent from your connected account

Step 5: Forward to CRM Contact

  1. Open email in detail panel
  2. Click Forward button
  3. Click Select from CRM button
  4. Search for contact by name
  5. Select contact from list
  6. Email auto-populated from contact record
  7. Add your message
  8. Click Send
  9. Email linked to contact's communication history

Inbox Features in Detail

Provider Switching & Caching

How It Works:

First Load:

  • Fetch messages from Gmail API
  • Store in cache with 5-minute expiration
  • Display messages in list

Switching to Outlook:

  • Check if Outlook cache exists and is fresh (< 5 min old)
  • If fresh: Use cached data (instant switch)
  • If expired: Fetch from Outlook API, update cache
  • Display Outlook messages

Switching Back to Gmail:

  • Cache still fresh (< 5 min)? Use cached data
  • Cache expired? Fetch fresh data
  • Instant provider switching experience

Benefits:

  • No re-fetching when switching tabs quickly
  • Reduced API calls to Google/Microsoft
  • Faster user experience
  • Automatic refresh every 5 minutes

Search Functionality

How Search Works:

Gmail Search:

  • Uses Gmail's native search syntax
  • Search in subject, sender, body
  • Real-time search with 300ms debounce
  • Results filtered on Gmail's servers

Outlook Search:

  • Uses Microsoft Graph API search
  • Search across all message fields
  • Same 300ms debounce
  • Server-side filtering

Search Tips:

  • Type sender name to find all emails from them
  • Type subject keywords to find related emails
  • Search is case-insensitive
  • Clear search to return to full inbox

Pagination & Infinite Scroll

How Pagination Works:

Gmail:

  • Loads 50 messages per page
  • Uses pageToken for next page
  • Automatic infinite scroll trigger
  • Smooth skeleton loaders

Outlook:

  • Loads 50 messages per page
  • Uses @odata.nextLink for pagination
  • Same infinite scroll UX
  • Consistent loading states

Scroll Behavior:

  • Scroll to bottom triggers next page load
  • Loading indicator appears
  • New messages appended to list
  • No pagination buttons needed

View Density

Comfortable View:

  • Default view mode
  • Larger spacing between messages
  • More readable sender/subject
  • Better for detailed review
  • Recommended for most users

Compact View:

  • Denser layout
  • Smaller fonts and spacing
  • See more emails on screen
  • Better for power users
  • Quickly scan many emails

Toggle anytime with the density icon in the toolbar.

Image Proxy for Email Safety

Problem: External images in emails can have CORS restrictions.

Solution: Image proxy endpoint

How It Works:

  1. Email contains external image URL
  2. Frontend detects external image
  3. Rewrites URL to: /api/user-email/inbox/proxy-image?url=original-url
  4. Backend fetches image from external server
  5. Backend returns image with CORS headers
  6. Image displays in email iframe

Benefits:

  • No CORS errors
  • Safe image loading
  • Cached for 24 hours (faster on reload)
  • Transparent to user

Email Tracking

Track Opens:

  • Invisible pixel embedded in HTML email
  • Pixel loads when recipient opens email
  • Backend records open event
  • View open stats in email analytics

Track Clicks:

  • Links wrapped with tracking URLs
  • Redirect through tracking server
  • Click event recorded
  • View click stats per link

Privacy Note:

  • You control tracking per account
  • Recipients not explicitly notified (industry standard)
  • Disable tracking anytime in Settings

Email Account Settings

Managing Multiple Accounts

Scenario: You have 3 Gmail accounts and 2 Outlook accounts.

How to Manage:

  1. Connect all 5 accounts via Settings
  2. Each account listed in Email Integrations
  3. Choose default account for sending
  4. Switch accounts when composing email

Account Selector:

  • Appears in Reply/Forward modals
  • Dropdown showing all connected accounts
  • Select which account to send from
  • Default account pre-selected

Default Account

What It Means:

  • Used for sending when no account specified
  • First choice in account selector
  • Marked with "Default" badge
  • One default account per provider (optional)

How to Set:

  1. Go to Settings → User Info
  2. Find account in Email Integrations list
  3. Click Set as Default button
  4. Account now marked as default

Email Signature

Per-Account Signatures:

  • Each connected account can have unique signature
  • HTML signatures supported
  • Auto-appended to sent emails
  • Edit anytime

Example Signature:

Best regards,
John Doe
Sales Manager | Acme Corp
john@acme.com | +1 234 567 8900

How to Update:

  1. Go to Settings → User Info
  2. Find account in list
  3. Click Edit Signature button
  4. Enter HTML or plaintext signature
  5. Click Save
  6. Signature now auto-appends to emails

Tracking Settings

Per-Account Tracking:

  • Enable/disable open tracking
  • Enable/disable click tracking
  • Settings persist per account
  • Change anytime

How to Toggle:

  1. Go to Settings → User Info
  2. Find account in list
  3. Click Tracking Settings button
  4. Toggle Track Opens on/off
  5. Toggle Track Clicks on/off
  6. Click Save

Best Practices

Email Management

Organize Your Inbox:

  • Use search to find emails quickly
  • Regularly check both Gmail and Outlook tabs
  • Archive or delete old emails (in native client)
  • Keep inbox clean for better performance

Reply Promptly:

  • Reply to customer emails within 24 hours
  • Use quick templates for common responses
  • Set up email signatures for professionalism
  • Track important email opens

CRM Integration:

  • Forward important customer emails to CRM contacts
  • Link emails to deals and companies
  • Maintain complete communication history
  • Use for follow-up reminders

Security & Privacy

OAuth Best Practices:

  • Only grant necessary permissions
  • Review connected apps regularly (Google/Microsoft settings)
  • Revoke access if account compromised
  • Reconnect to refresh tokens

Email Safety:

  • Don't click suspicious links in emails
  • Verify sender before replying to sensitive requests
  • Use BCC for mass emails (privacy)
  • Be cautious with tracking (respect recipient privacy)

Account Management:

  • Use strong passwords for email accounts
  • Enable 2FA on Google/Microsoft accounts
  • Disconnect unused email accounts
  • Regular security audits

Performance Optimization

Fast Inbox Loading:

  • Use provider caching (automatically enabled)
  • Don't refresh too frequently (respect cache)
  • Use search to narrow down messages
  • Compact view for faster scrolling

Reduce API Calls:

  • Wait for cache to expire before manual refresh
  • Batch operations when possible
  • Use pagination wisely
  • Don't spam search queries

Troubleshooting

Email Account Not Connecting

Problem: OAuth flow fails or returns error

Causes:

  • Incorrect Gmail/Outlook credentials
  • Browser blocking pop-ups
  • Cookies disabled
  • Network issues
  • Permissions denied

Solutions:

  1. Verify email credentials are correct
  2. Allow pop-ups for Expedify domain
  3. Enable cookies in browser
  4. Check internet connection
  5. Grant all requested permissions in OAuth flow
  6. Try different browser if issue persists

Emails Not Loading

Problem: Inbox shows loading but no emails appear

Causes:

  • OAuth token expired
  • API rate limiting
  • Network timeout
  • No emails in inbox
  • Provider API down

Solutions:

  1. Refresh page to check if token expired
  2. If prompted, reconnect email account in Settings
  3. Wait 1 minute and try again (rate limiting)
  4. Check if emails exist in native client (Gmail/Outlook)
  5. Check Google/Microsoft status pages for outages

"Authorization Expired" Error

Problem: Error message: "Gmail/Outlook authorization expired. Please reconnect your account in Settings."

Cause: OAuth refresh token expired or revoked

Solution:

  1. Go to Settings → User Info
  2. Find the affected email account
  3. Click Disconnect (if visible)
  4. Click Connect Gmail or Connect Outlook again
  5. Complete OAuth flow
  6. Return to Inbox and reload

Cannot Send Email

Problem: Send button doesn't work or returns error

Causes:

  • No connected email account
  • Account not set as default
  • Invalid recipient email
  • Missing subject or body
  • OAuth permissions insufficient

Solutions:

  1. Verify email account connected in Settings
  2. Set an account as default
  3. Check recipient email format is valid
  4. Fill in subject and message body
  5. Reconnect account to refresh permissions

Reply/Forward Modal Not Opening

Problem: Clicking Reply or Forward does nothing

Causes:

  • JavaScript error
  • Modal already open (hidden)
  • Browser compatibility issue
  • Network timeout

Solutions:

  1. Refresh page
  2. Close any open modals
  3. Try different browser
  4. Clear browser cache
  5. Check browser console for errors

Images Not Displaying in Emails

Problem: Email shows broken image icons

Causes:

  • External images blocked by sender
  • Image proxy server down
  • Network timeout
  • Invalid image URLs in email

Solutions:

  1. Refresh the email message
  2. Check internet connection
  3. Try viewing email in native client (Gmail/Outlook)
  4. Some senders intentionally block images (privacy)
  5. Image proxy has 24-hour cache - wait and retry

Search Not Working

Problem: Search returns no results or wrong results

Causes:

  • Search syntax error (Gmail)
  • Debounce delay (still typing)
  • No matching emails
  • Provider API issue

Solutions:

  1. Wait 300ms after typing for search to trigger
  2. Try simpler search terms
  3. Clear search and try again
  4. Check if emails exist in native client
  5. Switch providers and search again

Integration Status

Check Email Connection:

In Settings → User Info:

  • 🟢 Connected: Account active and working
  • 🟡 Token Expiring Soon: Reconnect recommended
  • 🔴 Disconnected: OAuth failed or revoked
  • Not Configured: No account connected

Refresh Token Status:

  • Tokens auto-refresh when expired
  • If auto-refresh fails, manual reconnect needed
  • Check "Last Used" timestamp to verify recent activity

Connection Health:

  • Successfully loading emails = healthy connection
  • "Authorization expired" error = reconnect needed
  • Network errors = temporary, retry in 1 minute