Portal Community

How It Works

Credential names are configured per tenant in TenantSettings. When you switch providers, you disable/enable credentials with that name. No code changes needed.

Scenario 1: Emergency Failover

Current provider (Gmail) is down. Switch to backup (SMTP) instantly:

-- Determine credential name from TenantSettings (or use default "email-primary")
SELECT @credentialName = Value
FROM TenantSettings
WHERE TenantID=1 AND Key='EmailCredentialName';
SET @credentialName = ISNULL(@credentialName, 'email-primary');

-- Disable failing credential
UPDATE AIExt_Credentials SET Enabled=0
WHERE Name=@credentialName AND TenantID=1;

-- Next email send automatically uses backup credential
-- Zero code changes needed!

Scenario 2: Gradual Migration

Move from SMTP to SES over 7 days without downtime:

-- Get configured credential name
SELECT @credentialName = Value
FROM TenantSettings
WHERE TenantID=1 AND Key='EmailCredentialName';
SET @credentialName = ISNULL(@credentialName, 'email-primary');

-- Day 1: Create SES credential with same name (disabled)
INSERT INTO AIExt_Credentials (Name, DisplayMetadata, EncryptedData, TenantID, Enabled)
VALUES (@credentialName, '{provider:ses,...}', 0x..., 1, 0);

-- Days 2-6: Monitor, test
-- Day 7: Enable SES, disable SMTP
UPDATE AIExt_Credentials SET Enabled=0
WHERE Name=@credentialName AND TenantID=1 AND DisplayMetadata LIKE '%smtp%';
UPDATE AIExt_Credentials SET Enabled=1
WHERE Name=@credentialName AND TenantID=1 AND DisplayMetadata LIKE '%ses%';

-- Application continues, no restarts!

Scenario 3: Rollback

New provider having issues? Revert instantly:

-- Get configured credential name
SELECT @credentialName = Value
FROM TenantSettings
WHERE TenantID=1 AND Key='EmailCredentialName';
SET @credentialName = ISNULL(@credentialName, 'email-primary');

-- Disable problematic provider
UPDATE AIExt_Credentials SET Enabled=0
WHERE Name=@credentialName AND TenantID=1 AND DisplayMetadata LIKE '%ses%';

-- Re-enable previous provider
UPDATE AIExt_Credentials SET Enabled=1
WHERE Name=@credentialName AND TenantID=1 AND DisplayMetadata LIKE '%smtp%';

-- All new emails route to previous provider automatically

Best Practices

Next Steps