Customization
The Intercom component has fixed position and styling. This guide shows what can be customized and workarounds for common needs.
Fixed Properties (Cannot Customize)
Position:
Bottom-right corner
Mobile: 112px from bottom, 16px from right
Desktop: 40px from bottom, 40px from right
Styling:
Dark theme only
50x50px trigger button
400px × 530px max popover size
HelpCircle/CircleX icons
Behavior:
Portal rendering
Requires authentication
What You Can Customize
1. When the Component Renders
Conditional Display:
Route-Based:
User-Based:
2. Which Agent to Chat With
Change the username prop to switch between different AI agents:
3. Load Behavior
Common Scenarios
Hide on Specific Pages
Multiple Chat Options
Don't render multiple Intercom instances. Use conditional rendering:
Layout Considerations
Avoid Position Conflicts
The Intercom button occupies bottom-right space. Ensure your fixed elements don't overlap:
Reserve Space for Fixed Elements
Z-Index Stacking
Default stacking order:
Page content (z-index: auto)
Intercom trigger (z-index: 10)
Intercom popover (z-index: 50)
Your modals (z-index: 100+)
Ensure your modals use z-index: 100+ to appear above Intercom.
Best Practices
Rendering:
Render at root level, not inside scrollable containers
Use single instance per page
Unmount when not needed for performance
User Experience:
Don't show immediately on page load (delay 3-5 seconds)
Use descriptive agent usernames (
billing_supportvssupport)Hide on auth pages (
/login,/signup)Show based on user permissions
Performance:
Default
fetchOnMount={false}is optimal (loads on open)Only use
fetchOnMount={true}if users need instant access
Limitations Summary
Button position
❌ Fixed bottom-right
Button styling
❌ Fixed icon/size/colors
Popover dimensions
❌ Fixed max-width/height
Theme
❌ Dark theme only
Z-index values
❌ Fixed (trigger: 10, popover: 50)
When component renders
✅ Conditional rendering
Which agent to chat with
✅ username prop
Message load timing
✅ fetchOnMount prop
Layout around component
✅ Your CSS/positioning
Related
Basic Usage - Component usage
Props Reference - Available props
Message Handling - Message flow
Components Overview - Other components
Last updated