Overview
This guide explains how to enable users to access the same Moveworks bot from multiple Teams tenants or Slack instances within a single Moveworks organization.
Example Use Case: Connect Moveworks Commercial (Prod US) to both Azure Commercial and a separate Azure tenant (e.g., GCCH) simultaneously.
Critical Considerations
1. Identity Resolution
Users must be joinable across tenants using a single key to ITSM/IDAM systems. Choose one approach:
Option A - Employee ID/GUID (Recommended)
- Add
employeeID or GUID to the new tenant and ITSM
- Use this consistent identifier for joining user records
Option B - Email Prefix Standardization with SwapEmailDomainConverter
- Use this when: Chat tenant email domain ≠ ITSM email domain
- Example scenario: Users have
user@company.com in ITSM but user@subsidiary.com in Teams tenant
- Use
SwapEmailDomainConverter to normalize domains during identity merge
- Standardizes email prefixes across tenants (e.g.,
john from john@domain1.com and john@domain2.com)
Option C - Superset in ITSM
- Use this when: ITSM contains accounts for all email domains used across all chat tenants
- No conversion needed - direct email join works
- ⚠️ Requires ITSM as primary/leftmost identity system
2. Messaging Endpoint
Verify the bot forwards to the correct Moveworks endpoint (Commercial, GCCH, EU, CA) based on your deployment.
Implementation Steps
Replace Graph/Teams with your chat system equivalent as needed.
Step 1: Add MS Teams Connector
Navigation: Setup → Manage Connectors → System Connectors
- Click “Add Connector”
- Select MS Teams connector
- Name it for the second tenant (e.g.,
msteams_tenant_2_name)
- Complete the connector configuration
- This connector handles bot messaging for the new tenant
Step 2: Add MS Graph Connector
Navigation: Setup → Manage Connectors → System Connectors
- Click “Add Connector”
- Select MS Graph connector
- Name it for the second tenant (e.g.,
msgraph_tenant_2_name)
- Complete authentication and permissions
- This connector handles identity/user data ingestion from the second tenant
Step 3: Add Identity Source for Second Tenant
Navigation: Setup → User Identity → Import Users
- Click “Add Identity Source”
- Select the new MS Graph connector (
msgraph_tenant_2_name) as the source
- Configure identity ingestion from the second tenant
- Add the
user_id_info.channel_id_info for the msteams_tenant_2_name connector
- Note: The channel will still be
MSTEAMS even though it’s a different tenant
- Save the configuration
Navigation: Setup → User Identity → Advanced Settings → Service Account
- Locate the service account user configuration
- Add a new
channel_id_info entry for the second Teams tenant:
- Replace
{{BOT_ID_INSTANCE_ONE}} and {{BOT_ID_INSTANCE_TWO}} with your actual bot IDs
- Save the configuration
Step 5: Create Chat Bot Config
Navigation: Setup → Manage Chatbots → Chatbots
- Click “Add New Chatbot”
- Configure for the new Teams tenant
- Select the MS Teams connector created in Step 1 (
msteams_tenant_2_name)
- Complete the chatbot configuration
- Important: Note the
integration_id for use in later steps
Navigation: Setup → User Identity → Import Users
⚠️ Only required if using Option B (email domains differ between chat tenant and ITSM)
- Locate the identity source for the second tenant
- Add
SwapEmailDomainConverter
- Configure the domain mapping:
- Source domain:
subsidiary.com (Teams tenant domain)
- Target domain:
company.com (ITSM domain)
- This ensures
user@subsidiary.com (Teams) joins with user@company.com (ITSM)
Skip this step if:
- Using Option A (Employee ID/GUID join)
- Using Option C (ITSM has all email domains)
- Email domains already match between chat tenant and ITSM
Step 7: Validate Roster
Navigation: Setup → User Identity → View Users
- Search for test users from each tenant
- Verify expected users in each tenant have a valid
channel_id for each integration
- Confirm both
integration_id values appear in user records
- Verify identity ingestion ran correctly
Navigation: Setup → AI Assistant → Notification Routes
- Set bot channel preference order
- Priority order matters: List most-restricted tenant first
- Example: Tenant 2 first (subset of users), then Tenant 1 (all users)
- The system will notify users on the first available channel according to this priority
Step 9: Update Launch Communications
Navigation: Setup → AI Assistant → Employee Communications
- Configure route preferences using
integration_id
- Set up outbound messaging for both tenants
- Test outbound notifications to both tenants
Validation Checklist
Use this checklist to ensure all configuration steps are complete:
Common Issues & Troubleshooting
Additional Resources
- MS Teams Connector Documentation
- MS Graph Connector Documentation
- Identity Resolution Best Practices
- Notification Routes Configuration
Support
If you encounter issues not covered in this guide, please contact Moveworks Support with:
- Screenshots of your connector configurations
- Roster validation results
- Error messages or logs
- Test user examples from both tenants