technical
EmailProfileFlowController — Skill Reference
File:Sodastream/Web/Web/Controllers/EmailProfileFlowController.cs— DI: 10 services — Auth:[Authorize](class-level)
Profile Grid & Listing
| Method | Route | Permission | Description |
|---|---|---|---|
Index() | GET | EmailProfilesAndAddressesListingView | Renders main EmailProfileFlow view. |
GetEmailProfile(DTParameters, getInactive=false) | GET | EmailProfilesAndAddressesListingView | DataTables JSON. Multi-keyword search across 10 fields. Filters to IsActive=true by default. Special sort for Name (FirstName+LastName). |
ActivateDeactivateEmailProfile(id, isActive) | GET | — | Toggles profile active/inactive. |
Email Addresses (EPA Grid)
| Method | Route | Permission | Description |
|---|---|---|---|
EmailAddresses(emailProfileId) | GET | EmailProfilesAndAddressesListingView | Returns EmailAddresses view with ActiveSchedules flag. |
EmailAddressesByStatus(DTParameters, id, getInactive) | GET | — | DataTables JSON of EPAs. Filters by SendingMechanism, Email, ReplaceEmail, TrackingDomain. |
ToggleActiveSending(emailAccountId, bool) | POST | — | Single-EPA toggle (unlike DomainFlowController's account-level). |
Profile CRUD & Clone
| Method | Route | Permission | Description |
|---|---|---|---|
EditEmailProfile(Id=0) | GET | AddEditEmailProfiles | Returns _EditEmailProfile partial. Populates: countries, approaches, sender locations, ops users (4 roles), data sources, sales agents, profile types, sender info, email accounts. Defaults: CreditPerProspect from campaign, MaxEmailStages=4, MaxProspectsPerDayPerCompany[1-9]=2. |
EditEmailProfile(model) | POST | AddEditEmailProfiles | Creates/updates profile. Validates Label, SalesAgentId, TypesList, OpsOwnerId. UnSubUrl must start with "https://emails.". Non-Generative: forces IsBatch=false, GenerateM1MessagesOnly=false. |
Clone(Id=0) | GET | AddEditEmailProfiles | Returns Clone view. Clears Label/FromName. Copies email accounts, countries, types from source. |
Clone(model) | POST | AddEditEmailProfiles | Clones profile. Source must have EmailOutreach or IPMatchAndEngage type. Generative: IsBatch=true, GenerateM1MessagesOnly=true. |
Helpers & Preview
| Method | Route | Permission | Description |
|---|---|---|---|
GetEmailAccountsBySalesAgent(salesAgentId) | GET | — | JSON with email accounts + agent details (firstName, lastName, telephone, emailTitle). |
GenerativePreview(Id=0) | GET | — | Returns GenerativePreview view. |
Profile Types
| Type | Behaviour |
|---|---|
EmailOutreach | Standard outreach. Clonable. |
Gifting | Gift campaign profile. |
IPMatchAndEngage | IP-based visitor matching. Clonable. |
Generative | AI-generated messages. Clone: forces IsBatch=true, GenerateM1MessagesOnly=true. Non-Generative forces these to false on edit. |
Webchat | Web chat integration profile. |
Key Integrations
| Service | Interface |
|---|---|
| Email Profile Flow | IEmailProfileFlowService |
| Campaign Email Schedule | ICampaignEmailScheduleService |
| Email Profiles | IEmailProfileService |
| Holidays | IHolidayService |
| Messaging | IMessagingService |
| EPA Service | IEmailProfileAddressesService |
| User Settings | IAspNetUserSettingsService |