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:
-
Personal Email Account
- Gmail account (for Gmail integration)
- Outlook/Microsoft 365 account (for Outlook integration)
- No special permissions required
-
OAuth Permissions
- Allow Expedify to access your emails
- Read, send, and compose permissions
- Revocable anytime from Google/Microsoft settings
-
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:
- Go to Settings → User Info
- Scroll to Email Integrations section
- Click Connect Gmail button
- Google OAuth window opens
- Select your Gmail account
- Click Allow to grant permissions
- Redirected back to Settings with success message
For Outlook:
- Go to Settings → User Info
- Scroll to Email Integrations section
- Click Connect Outlook button
- Microsoft login window opens
- Enter Outlook credentials
- Click Accept to grant permissions
- Redirected back to Settings with success message
Step 2: Access Your Inbox
- Go to Channel → Inbox
- See Gmail and Outlook tabs
- Default view shows Gmail (if connected)
- Click Outlook tab to switch providers
- All your emails load automatically
Step 3: Read Emails
- Browse emails in the message list
- Scroll down to load more (infinite scroll)
- Use search bar to find specific emails
- Click on any email to view details
- Message detail panel opens on the right
Step 4: Reply to Email
- Open email in detail panel
- Click Reply button
- Compose modal opens with pre-filled fields
- Type your reply message
- Toggle tracking (opens/clicks) if needed
- Click Send
- Email sent from your connected account
Step 5: Forward to CRM Contact
- Open email in detail panel
- Click Forward button
- Click Select from CRM button
- Search for contact by name
- Select contact from list
- Email auto-populated from contact record
- Add your message
- Click Send
- 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
pageTokenfor next page - Automatic infinite scroll trigger
- Smooth skeleton loaders
Outlook:
- Loads 50 messages per page
- Uses
@odata.nextLinkfor 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:
- Email contains external image URL
- Frontend detects external image
- Rewrites URL to:
/api/user-email/inbox/proxy-image?url=original-url - Backend fetches image from external server
- Backend returns image with CORS headers
- 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:
- Connect all 5 accounts via Settings
- Each account listed in Email Integrations
- Choose default account for sending
- 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:
- Go to Settings → User Info
- Find account in Email Integrations list
- Click Set as Default button
- 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:
- Go to Settings → User Info
- Find account in list
- Click Edit Signature button
- Enter HTML or plaintext signature
- Click Save
- 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:
- Go to Settings → User Info
- Find account in list
- Click Tracking Settings button
- Toggle Track Opens on/off
- Toggle Track Clicks on/off
- 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:
- Verify email credentials are correct
- Allow pop-ups for Expedify domain
- Enable cookies in browser
- Check internet connection
- Grant all requested permissions in OAuth flow
- 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:
- Refresh page to check if token expired
- If prompted, reconnect email account in Settings
- Wait 1 minute and try again (rate limiting)
- Check if emails exist in native client (Gmail/Outlook)
- 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:
- Go to Settings → User Info
- Find the affected email account
- Click Disconnect (if visible)
- Click Connect Gmail or Connect Outlook again
- Complete OAuth flow
- 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:
- Verify email account connected in Settings
- Set an account as default
- Check recipient email format is valid
- Fill in subject and message body
- 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:
- Refresh page
- Close any open modals
- Try different browser
- Clear browser cache
- 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:
- Refresh the email message
- Check internet connection
- Try viewing email in native client (Gmail/Outlook)
- Some senders intentionally block images (privacy)
- 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:
- Wait 300ms after typing for search to trigger
- Try simpler search terms
- Clear search and try again
- Check if emails exist in native client
- 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
Related Resources
- Email Campaigns → - Send bulk emails to segments
- Email Templates → - Create reusable email templates
- CRM Contacts → - Manage customer contacts
- Integrations → - Connect Gmail and Outlook