Skip to main content

technical



DomainFlowController — Skill Reference

File: Sodastream/Web/Web/Controllers/DomainFlowController.csDI: 28 services — Base: BaseController

Domain Grid & Listing

MethodRoutePermissionDescription
Index()GETRenders main DomainFlow view. Sets GSuite/Postal/Outlook login dropdowns, campaign ID, default IMAP/SMTP ports.
GetDomains(DTParameters)GETPaginated/filtered/sorted DataTables JSON of domains.
EmailAddresses(domainId, domainName, type)GETReturns _EmailAddresses partial view.
DomainAccounts(domainId, domainName, type)GETReturns _DomainAccounts partial view.
GetDomainAccounts(domainName, type)GETJSON array of accounts for domain+type (defaults to GSuite).
GetAddresses(domainId, domainName, type)GETJSON of email accounts, dispatching by type (GSuite/Postal/Other/Outlook).

Domain Creation & Setup

MethodRoutePermissionDescription
EditCampaignDomain(DomainId, campaignId)GETAddEditCampaignReturns campaign domain edit partial with type dropdowns.
EditClientDomain(CampaignDomain)POSTAddEditCampaignCreates Domain + CampaignDomain. URL must contain "http". Sends Hangfire notification.
InitDomain(Id=0)GETAddNewDomainReturns _InitDomain partial. SetupType/SendingMechanism/DomainType dropdowns. Defaults: Type=Hmail, GoogleLoginId=3.
InitDomain(Domain)POSTAddNewDomainCreates domain. SetupType=3 clears domain Type.
SelectExistingDomain(campaignId)GETAddEditCampaignReturns _SelectExistingDomain partial with all client domains.
SelectExistingDomain(List<string>)POSTCopies existing domains to current campaign.
EditCampaignDomainMultipleGET/POSTAddEditCampaignBatch domain purchase. Validates, buys via GoDaddy, creates entities, whitelists.
CheckDomain(domainName)POSTGoDaddy availability and price check. Rejects >$20.

Email Account Management

MethodRoutePermissionDescription
SelectExistingAccount(domain)GETAddEditCampaignReturns _SelectExistingAccount partial.
SelectExistingAccount(accounts, type)POSTCopies email accounts to campaign. Creates EPA + ResponderAccount.
EditAccountLevel(email, type)GET/POSTAccount-level edit modal. Resolves entity ID by type. Updates forwarding/Exchange rules.
CreateEmailAccount(model)POSTGSuiteCreates account by type. EPA + ResponderAccount + ForwardingRule + ResponderInboxQueue.
SaveSmtpAppPassword(Id, AppPassword, TwoFACode)POSTUpdates SMTP password/2FA. Propagates to linked records.

Warm-Up & Sending

MethodRoutePermissionDescription
WarmupScheduleSetup(...)GETReturns _WarmupScheduleSetup partial. Defaults: start=tomorrow, all days enabled.
EditWarmUpSchedule(model)POSTCreates/updates warmup schedule V2. Validates date and profile linkage.
TestWarmUpEmailTemplateGET/POSTTestEmailTempalteSpins template via Spinner.Spin, sends test email.
ToggleActiveSending(emailAccountId, bool)POSTAccount-level — affects ALL EPAs sharing the same email.
ToggleOffWarmUp(...)POSTDeactivates warmup. Marks EPAs setup-incomplete if warmup required.

Search & Utilities

MethodRoutePermissionDescription
SearchEmails(searchTerm)POSTSearches GSuite/Outlook/Other by email/name (max 50 each).
GetEmailAccountDetails(email, type)POSTReturns password, app password, 2FA, SMTP server/port, login.
GetOutlookLicenseInfo(loginId)POSTJSON with available Outlook license count.
GetEmailProfilesForCampaign()GETJSON of profiles (id, name, salesAgentId).
GetSalesAgents()GETJSON list of sales agents for campaign.

Key Integrations

ServiceInterface
GoDaddy APIIGoDaddyAPIService
GSuite Admin SDKIGSuiteUserService
Outlook GraphIOutlookGraphService
PostalIPostalService
Hangfire NotificationsIHangFireCampaignNotifications
Warm-Up V2IWarmupV2Service
Email TemplatesIEmailTemplateService