{ "configuration": { "loading": "Loading email providers...", "feedback": { "testingConnection": "Testing connection for {{providerName}}...", "connectionSuccess": "Connected to {{providerName}}.", "connectionError": "Connection test failed", "refreshWatchError": "Failed to refresh watch subscription", "renewalError": "Renewal failed", "initiateOauthError": "Failed to initiate IMAP OAuth", "resyncing": "Resyncing {{providerName}}...", "resyncError": "Failed to resync IMAP provider", "resyncStarted": "Resync started for {{providerName}}.", "enterpriseOnly": "Microsoft 365 inbound email is only available in Enterprise Edition." }, "editDrawer": { "title": "Edit Email Provider", "description": "Update configuration for {{providerName}}" }, "header": { "title": "Email Provider Configuration", "description": { "enterprise": "Configure Gmail, Microsoft 365, or IMAP providers to receive and process inbound emails as tickets", "standard": "Configure Gmail or IMAP providers to receive and process inbound emails as tickets" }, "counts": { "enterprise": "Gmail: {{gmail}} · Microsoft: {{microsoft}} · IMAP: {{imap}}", "standard": "Gmail: {{gmail}} · IMAP: {{imap}}" } }, "actions": { "addProvider": "Add Email Provider" }, "nav": { "providers": "Providers", "defaults": "Defaults", "inboundRules": "Inbound Rules" }, "setup": { "title": "Setup Instructions", "microsoft": { "title": "Microsoft 365 Setup", "steps": { "registerApp": "Register an application in Azure AD", "permissions": "Configure API permissions for Mail.Read", "redirectUrl": "Set up the redirect URL in your app registration", "credentials": "Use the Client ID and Client Secret in the form above" } }, "gmail": { "title": "Gmail Setup", "enterpriseSteps": { "enterAddress": "Enter your Gmail address and provider name", "connect": "Click \"Connect Gmail\" to authorize access", "preferences": "Configure email processing preferences", "save": "Save to complete setup" }, "standardSteps": { "project": "Create a project in Google Cloud Console", "oauth": "Enable Gmail API and create OAuth2 credentials", "pubsub": "Set up Pub/Sub topic for push notifications", "consent": "Configure the OAuth consent screen and add test users" } } } }, "list": { "header": { "title": "Email Providers ({{count}})" }, "filters": { "searchPlaceholder": "Search providers...", "allProviders": "All Providers" }, "actions": { "refresh": "Refresh" } }, "selector": { "header": { "title": "Choose Your Email Provider", "description": "Select the email service you want to use for inbound email processing. You can configure multiple email providers per account." }, "cards": { "google": { "title": "Gmail", "description": "Google Workspace / Gmail Integration", "features": { "accounts": "✓ Gmail and Google Workspace accounts", "filtering": "✓ Label-based email filtering", "processing": "✓ Real-time email processing", "authentication": "✓ Automatic OAuth authentication" }, "action": "Set up Gmail" }, "microsoft": { "title": "Microsoft 365", "description": "Microsoft 365 / Outlook Integration", "features": { "accounts": "✓ Microsoft 365 and Outlook accounts", "filtering": "✓ Folder-based email filtering", "processing": "✓ Real-time email processing", "authentication": "✓ Azure AD OAuth integration" }, "action": "Set up Microsoft 365" }, "imap": { "title": "IMAP", "description": "Custom IMAP Server Integration", "features": { "accounts": "✓ Any IMAP-compliant mailbox", "filtering": "✓ Folder-based email filtering", "authentication": "✓ OAuth2 or password authentication", "listener": "✓ Real-time IDLE listener" }, "action": "Set up IMAP" } }, "actions": { "cancel": "Cancel" }, "help": { "enterprise": "Choose the provider your organization already uses. If you use Google Workspace, pick Gmail; if you use Microsoft 365, pick Microsoft 365. You can change this later by removing and reconfiguring your email provider.", "standard": "Choose the provider your organization already uses. If you use Google Workspace, pick Gmail; otherwise choose IMAP. You can change this later by removing and reconfiguring your email provider." } }, "wizard": { "title": { "select": "Choose Email Provider", "setup": "{{provider}} Configuration" }, "actions": { "cancel": "Cancel", "back": "Back", "close": "Close" } }, "providerCard": { "subscription": { "expired": "Expired", "expiresInHours": "Expires in {{count}}h", "expiresInDays": "Expires in {{count}}d" }, "badges": { "disabled": "Disabled", "connected": "Connected", "disconnected": "Disconnected", "error": "Error", "configuring": "Configuring", "unknown": "Unknown" }, "lastSync": { "never": "Never", "justNow": "Just now", "minutesAgo": "{{count}}m ago", "hoursAgo": "{{count}}h ago", "daysAgo": "{{count}}d ago" }, "actions": { "edit": "Edit Configuration", "testing": "Testing…", "testConnection": "Test Connection", "refreshWatch": "Refresh Pub/Sub & Watch", "retryRenewal": "Retry Renewal", "runDiagnostics": "Run Microsoft 365 Diagnostics", "reconnectOauth": "Reconnect OAuth", "resyncing": "Resyncing…", "resyncMailbox": "Resync Mailbox", "delete": "Delete Provider" }, "fields": { "status": "Status", "lastSync": "Last Sync", "created": "Created", "subscription": "Subscription", "defaults": "Ticket Defaults", "error": "Error:" }, "values": { "active": "Active", "inactive": "Inactive", "disabled": "Disabled", "error": "Error" }, "types": { "google": "Gmail", "microsoft": "Microsoft 365", "imap": "IMAP" }, "filters": { "folders": "Folders: {{filters}}", "labels": "Labels: {{filters}}" }, "warnings": { "inboundDefaults": "Inbound ticket defaults are required and emails won't process until one is selected." }, "defaults": { "placeholder": "Select defaults...", "empty": "No defaults available" }, "empty": { "title": "No Email Providers Configured", "description": "Add an email provider to start receiving and processing inbound emails as tickets.", "action": "Add Email Provider" } }, "forms": { "common": { "actions": { "cancel": "Cancel", "saving": "Saving...", "updateProvider": "Update Provider", "addProvider": "Add Provider", "createProvider": "Create Provider", "manageDefaults": "Manage defaults", "refreshList": "Refresh list", "openProvidersSettings": "Open Providers Settings" }, "validation": { "requiredFieldsTitle": "Please fill in the required fields:", "fixHighlightedFields": "Please fix the highlighted fields and try again." }, "ticketDefaults": { "title": "Ticket Defaults", "description": "Select defaults to apply to email-created tickets", "label": "Inbound Ticket Defaults", "placeholder": "Select defaults (optional)", "empty": "No defaults available" }, "oauth": { "authorizing": "Authorizing...", "authorized": "Authorized", "authorizeAccess": "Authorize Access" } }, "microsoft": { "validation": { "providerNameRequired": "Configuration name is required", "emailRequired": "Valid email address is required", "redirectRequired": "Valid redirect URI is required", "authorizeRequiresValid": "Please fill in all required fields before authorizing", "oauthInitiateFailed": "Failed to initiate OAuth", "popupBlocked": "Failed to open OAuth popup. Please allow popups for this site.", "closedEarly": "Authorization window closed before completing. Please try again.", "authorizationFailed": "Authorization failed", "senderDisplayNameInvalid": "Display name cannot contain quotes, angle brackets, or line breaks" }, "requiredFields": { "providerName": "Configuration Name", "emailAddress": "Email Address", "redirectUri": "Redirect URI" }, "basic": { "title": "Basic Configuration", "description": "Basic settings for your Microsoft 365 email provider", "providerNameLabel": "Configuration Name *", "providerNamePlaceholder": "e.g., Support Mailbox (internal)", "emailLabel": "Email Address *", "emailPlaceholder": "support@client.com", "enableProvider": "Enable this provider", "providerNameHelp": "Internal name used to identify this configuration. Not shown in outbound emails.", "senderDisplayNameLabel": "Sender Display Name", "senderDisplayNamePlaceholder": "e.g., Acme Support", "senderDisplayNameHelp": "Display name shown in the From header on outbound ticket emails (replies, closures). Applied only when this mailbox matches the tenant's outbound ticketing-from address. Leave blank to fall back to the ticket's board name." }, "oauth": { "sectionTitle": "Microsoft OAuth Configuration", "sectionDescription": "Microsoft app credentials are configured in Providers settings and reused here.", "setupLabel": "Microsoft Entra", "notConfigured": "Microsoft provider settings are not configured.", "setupHelp": "Configure Providers first in Settings → Integrations → Providers, then return here to authorize this mailbox.", "redirectUriLabel": "Redirect URI *", "redirectUriPlaceholder": "https://yourapp.com/api/auth/microsoft/callback", "authorizationTitle": "OAuth Authorization", "authorizationDescription": "Complete OAuth flow to grant access to the mailbox" }, "advanced": { "title": "Advanced Settings", "description": "Configure advanced email processing options", "folderFiltersLabel": "Folder Filters", "folderFiltersPlaceholder": "Inbox, Support, Custom Folder", "folderFiltersHelp": "Comma-separated list of folders to monitor (default: Inbox)", "maxEmailsPerSync": "Max Emails Per Sync" } }, "gmail": { "validation": { "providerNameRequired": "Configuration name is required", "gmailAddressRequired": "Valid Gmail address is required", "authorizeRequiresValid": "Please fill in all required fields before authorizing", "googleNotConfigured": "Google integration is not configured for this tenant. Configure Google first, then retry.", "oauthInitiateFailed": "Failed to initiate OAuth", "popupBlocked": "Failed to open OAuth popup. Please allow popups for this site.", "closedEarly": "Authorization window was closed before completing.", "authorizationFailed": "Authorization failed", "popupFailed": "OAuth popup failed" }, "messages": { "setupIncomplete": "Provider saved but setup incomplete: {{error}}", "warningsTitle": "Setup completed with warnings:", "settingUp": "Setting up Gmail notifications..." }, "requiredFields": { "providerName": "Configuration Name", "gmailAddress": "Gmail Address" }, "basic": { "title": "Basic Configuration", "description": "Basic settings for your Gmail email provider", "providerNameLabel": "Configuration Name *", "providerNamePlaceholder": "e.g., Support Gmail (internal)", "mailboxLabel": "Gmail Address *", "mailboxPlaceholder": "support@client.com", "enableProvider": "Enable this provider", "providerNameHelp": "Internal name used to identify this configuration. Not shown in outbound emails.", "senderDisplayNameLabel": "Sender Display Name", "senderDisplayNamePlaceholder": "e.g., Acme Support", "senderDisplayNameHelp": "Display name shown in the From header on outbound ticket emails (replies, closures). Applied only when this mailbox matches the tenant's outbound ticketing-from address. Leave blank to fall back to the ticket's board name." }, "oauth": { "sectionTitle": "Google OAuth", "sectionDescription": "Uses the tenant-owned Google app configured in Settings → Integrations → Providers.", "setupLabel": "Google Cloud Console", "notConfigured": "Google integration is not configured for this tenant.", "setupHelp": "Configure tenant-owned Google OAuth + Pub/Sub first: Settings → Integrations → Providers.", "openSettings": "Open Google Settings", "requiredTitle": "OAuth Authorization Required", "requiredDescriptionAdd": "You must complete OAuth authorization above before adding the provider to enable Gmail notifications.", "requiredDescriptionUpdate": "You must complete OAuth authorization above before updating the provider to enable Gmail notifications.", "stepTitle": "Step 1: OAuth Authorization", "stepDescription": "Complete OAuth flow to grant access to Gmail", "buttonSuccessSaving": "Successfully authorized! Saving your settings..." }, "advanced": { "title": "Advanced Settings", "description": "Configure advanced email processing options", "completeSetupSuffix": " & Complete Setup" }, "processing": { "labelFiltersLabel": "Gmail Labels to Monitor", "labelFiltersPlaceholder": "INBOX, Support, Custom Label", "labelFiltersHelp": "Comma-separated list of Gmail labels to monitor (default: INBOX)" } }, "imap": { "validation": { "providerNameRequired": "Configuration name is required", "mailboxRequired": "Mailbox is required", "mailboxInvalid": "Valid mailbox is required (e.g. user@domain.com, user@localhost, user@test-server, or user)", "hostRequired": "IMAP host is required", "usernameRequired": "IMAP username is required", "oauthInitiateFailed": "Failed to initiate IMAP OAuth", "senderDisplayNameInvalid": "Display name cannot contain quotes, angle brackets, or line breaks" }, "basic": { "title": "Basic Settings", "description": "Define the IMAP mailbox connection details.", "providerName": "Configuration Name", "mailboxAddress": "Mailbox Address", "host": "IMAP Host", "port": "Port", "useTls": "Use TLS/SSL", "allowStarttls": "Allow STARTTLS Upgrade", "providerNamePlaceholder": "e.g., Support IMAP (internal)", "providerNameHelp": "Internal name used to identify this configuration. Not shown in outbound emails.", "senderDisplayName": "Sender Display Name", "senderDisplayNamePlaceholder": "e.g., Acme Support", "senderDisplayNameHelp": "Display name shown in the From header on outbound ticket emails (replies, closures). Applied only when this mailbox matches the tenant's outbound ticketing-from address. Leave blank to fall back to the ticket's board name." }, "auth": { "title": "Authentication", "description": "Choose password or OAuth2 authentication.", "typeLabel": "Authentication Type", "passwordOption": "Password", "oauth2Option": "OAuth2 (XOAUTH2)", "username": "Username", "password": "Password / App Password", "passwordHelp": "Passwords are stored securely and will not be displayed. Leave blank to keep the existing password.", "oauthStatus": "OAuth Status", "connected": "Connected", "notConnected": "Not connected", "reconnectOauth": "Reconnect OAuth", "authorizeUrl": "Authorize URL", "tokenUrl": "Token URL", "clientId": "OAuth Client ID", "clientSecret": "OAuth Client Secret", "scopes": "OAuth Scopes", "scopesPlaceholder": "space-delimited scopes" }, "processing": { "title": "Processing Settings", "description": "Choose folders and processing behavior.", "folderFilters": "Folder Filters", "folderFiltersPlaceholder": "Inbox, Support, Tickets", "active": "Active" } } }, "inboundDefaultsForm": { "feedback": { "loadOptionsError": "Failed to load field options", "loading": "Loading form options..." }, "validation": { "nameRequired": "Short name and display name are required", "boardRequired": "Board is required", "statusRequired": "Status is required", "priorityRequired": "Priority is required", "clientRequired": "Company is required" }, "fields": { "shortName": { "label": "Short Name *", "placeholder": "email-general", "help": "Unique identifier (e.g., email-general, support-billing)" }, "displayName": { "label": "Display Name *", "placeholder": "General Email Support" }, "description": { "label": "Description", "placeholder": "Optional description of when these defaults are used" }, "active": { "label": "Active" }, "board": { "label": "Board *", "placeholder": "Select Board" }, "status": { "label": "Status *", "placeholder": "Select status", "selectBoardFirst": "Select board first", "loading": "Loading statuses..." }, "priority": { "label": "Priority *", "placeholder": "Select priority" }, "client": { "label": "Client *", "placeholder": "Select Client", "help": "Required: used as a catch-all when no client can be matched from the email." }, "category": { "label": "Category", "placeholder": "Select category", "placeholderNoBoard": "Select board first", "empty": "No categories found for the selected board." }, "location": { "label": "Location", "placeholder": "Select location", "placeholderNoClient": "Select client first (optional)", "help": "Only applied when the catch-all client is used (no match case)." }, "enteredBy": { "label": "Entered By", "placeholder": "System (null)", "help": "Used only when we cannot match a contact or client. System tickets will show \"System\" as creator." } }, "section": { "ticketDefaults": "Ticket Defaults" }, "optionSuffix": { "default": "(Default)" }, "actions": { "cancel": "Cancel", "updating": "Updating...", "creating": "Creating...", "update": "Update Defaults", "create": "Create Defaults" } }, "imapForm": { "sections": { "basic": { "title": "Basic Settings", "description": "Define the IMAP mailbox connection details." }, "auth": { "title": "Authentication", "description": "Choose password or OAuth2 authentication." }, "processing": { "title": "Processing Settings", "description": "Choose folders and processing behavior." } }, "fields": { "providerName": "Configuration Name", "mailboxAddress": "Mailbox Address", "imapHost": "IMAP Host", "port": "Port", "useTls": "Use TLS/SSL", "allowStarttls": "Allow STARTTLS Upgrade", "authenticationType": "Authentication Type", "username": "Username", "passwordLabel": "Password / App Password", "authorizeUrl": "Authorize URL", "tokenUrl": "Token URL", "oauthClientId": "OAuth Client ID", "oauthClientSecret": "OAuth Client Secret", "oauthScopes": "OAuth Scopes", "oauthScopesPlaceholder": "space-delimited scopes", "folderFilters": "Folder Filters", "folderFiltersPlaceholder": "Inbox, Support, Tickets", "active": "Active", "ticketDefaultsLabel": "Ticket Defaults", "ticketDefaultsPlaceholder": "Select defaults...", "ticketDefaultsEmpty": "No defaults available", "providerNamePlaceholder": "e.g., Support IMAP (internal)", "providerNameHelp": "Internal name used to identify this configuration. Not shown in outbound emails.", "senderDisplayName": "Sender Display Name", "senderDisplayNamePlaceholder": "e.g., Acme Support", "senderDisplayNameHelp": "Display name shown in the From header on outbound ticket emails (replies, closures). Applied only when this mailbox matches the tenant's outbound ticketing-from address. Leave blank to fall back to the ticket's board name." }, "authOptions": { "password": "Password", "oauth2": "OAuth2 (XOAUTH2)" }, "password": { "editHelp": "Passwords are stored securely and will not be displayed. Leave blank to keep the existing password." }, "oauth": { "statusLabel": "OAuth Status", "connected": "Connected", "notConnected": "Not connected", "authorizing": "Authorizing...", "reconnect": "Reconnect OAuth" }, "validation": { "fixHighlightedFields": "Please fix the highlighted fields and try again." }, "actions": { "cancel": "Cancel", "saving": "Saving...", "updateProvider": "Update Provider", "createProvider": "Create Provider" } }, "microsoftForm": { "header": { "title": "Microsoft 365 Integration", "description": "Simply connect your Microsoft 365 account and configure your email processing preferences to get started." }, "sections": { "accountSetup": { "title": "Microsoft 365 Account Setup", "description": "Configure your Microsoft 365 account for inbound email processing" }, "authentication": { "title": "Microsoft 365 Authentication", "description": "Connect your Microsoft 365 account to enable email processing" }, "processing": { "title": "Email Processing Settings", "description": "Configure how emails are processed and imported" }, "ticketDefaults": { "title": "Ticket Defaults", "description": "Select defaults to apply to email-created tickets" } }, "fields": { "providerNameLabel": "Configuration Name *", "providerNamePlaceholder": "e.g., Support Mailbox (internal)", "mailboxLabel": "Microsoft 365 Address *", "mailboxPlaceholder": "support@client.com", "enableProvider": "Enable this provider", "foldersLabel": "Folders to Monitor", "foldersPlaceholder": "Inbox, Support, Custom Folder", "foldersHelp": "Comma-separated list of folders to monitor (default: Inbox)", "maxEmailsLabel": "Max Emails Per Sync", "maxEmailsHelp": "Maximum number of emails to process in each sync (1-1000)", "inboundDefaultsLabel": "Inbound Ticket Defaults", "inboundDefaultsPlaceholder": "Select defaults (optional)", "providerNameHelp": "Internal name used to identify this configuration. Not shown in outbound emails.", "senderDisplayNameLabel": "Sender Display Name", "senderDisplayNamePlaceholder": "e.g., Acme Support", "senderDisplayNameHelp": "Display name shown in the From header on outbound ticket emails (replies, closures). Applied only when this mailbox matches the tenant's outbound ticketing-from address. Leave blank to fall back to the ticket's board name." }, "oauth": { "connectionTitle": "Microsoft 365 Connection", "descriptionIdle": "Authorize access to your Microsoft 365 account", "descriptionSuccess": "Successfully connected! Complete setup by saving below.", "connecting": "Connecting...", "connected": "Connected", "connectButton": "Connect Microsoft 365", "requiredTitle": "Microsoft 365 Connection Required", "requiredDescriptionUpdate": "You must connect your Microsoft 365 account above before updating the provider.", "requiredDescriptionAdd": "You must connect your Microsoft 365 account above before adding the provider.", "authError": "Please fill in all required fields before authorizing", "popupBlocked": "Failed to open OAuth popup. Please allow popups for this site.", "authorizationFailed": "Authorization failed", "initiateFailed": "Failed to initiate OAuth", "hostedConfigIncomplete": "Hosted Microsoft configuration not available or incomplete", "hostedCredentialsMissing": "Hosted Microsoft client credentials not available" }, "nextStep": { "title": "Complete Setup", "autoSubmit": "Auto-completing in", "secondsSuffix": "seconds, or click", "clickNow": "below now.", "manualInstruction": "Click", "manualSuffix": "below to finish configuration.", "cancelAutoSubmit": "Cancel Auto-Submit" }, "buttons": { "updateProvider": "Update Provider", "addProvider": "Add Provider", "manageDefaults": "Manage defaults", "refreshList": "Refresh list", "cancel": "Cancel", "completeSetupSuffix": "& Complete Setup", "settingUp": "Setting up Microsoft 365 integration..." }, "validation": { "requiredFieldsTitle": "Please fill in the required fields:", "providerName": "Configuration Name", "mailbox": "Microsoft 365 Address" } }, "gmailForm": { "header": { "title": "Gmail Integration", "description": "Connect your Gmail account and configure your email processing preferences." }, "basicConfig": { "title": "Gmail Account Setup", "description": "Configure your Gmail account for inbound email processing" }, "authentication": { "title": "Gmail Authentication", "description": "Connect your Gmail account to enable email processing", "connectionTitle": "Gmail Connection", "descriptionIdle": "Authorize access to your Gmail account", "descriptionSuccess": "Successfully connected! Saving your settings...", "buttonIdle": "Connect Gmail", "buttonAuthorizing": "Connecting...", "buttonSuccess": "Connected" }, "processing": { "title": "Email Processing Settings", "description": "Configure how emails are processed and imported" }, "ticketDefaults": { "title": "Ticket Defaults", "description": "Select defaults to apply to email-created tickets", "manageDefaults": "Manage defaults", "inboundDefaultsLabel": "Inbound Ticket Defaults", "inboundDefaultsPlaceholder": "Select defaults (optional)", "refreshList": "Refresh list" }, "googleConfig": { "notConfigured": "Google integration is not configured for this tenant.", "configureHint": "Configure tenant-owned Google OAuth + Pub/Sub first:", "settingsPath": "Settings → Integrations → Providers", "openSettings": "Open Google Settings" }, "oauth": { "requiredTitle": "Gmail Connection Required", "requiredDescriptionUpdate": "You must connect your Gmail account above before updating the provider.", "requiredDescriptionAdd": "You must connect your Gmail account above before adding the provider.", "fillRequiredFields": "Please fill in all required fields before authorizing", "notConfiguredTenant": "Google integration is not configured for this tenant. Configure Google first, then retry.", "initiateFailed": "Failed to initiate OAuth" }, "validation": { "requiredFieldsTitle": "Please fill in the required fields:", "providerName": "Provider Name", "mailbox": "Gmail Address" }, "warnings": { "setupIncomplete": "Provider saved but setup incomplete: {{error}}", "setupWarningsTitle": "Setup completed with warnings:" }, "buttons": { "updateProvider": "Update Provider", "addProvider": "Add Provider", "completeSetupSuffix": "& Complete Setup", "cancel": "Cancel", "settingUp": "Setting up Gmail integration..." } }, "managed": { "messages": { "loadDomainsFailed": "Failed to load managed domains", "loadOutboundSettingsFailed": "Failed to load outbound email settings", "ticketingFromUpdated": "Ticketing from address updated", "ticketingFromSaveFailed": "Failed to save ticketing from address", "ticketingFromCleared": "Ticketing from address cleared", "ticketingFromClearFailed": "Failed to clear ticketing from address", "switchProviderFailed": "Failed to switch provider", "smtpHostRequired": "SMTP host is required", "fromAddressRequired": "From address is required", "smtpSaved": "SMTP settings saved", "smtpSaveFailed": "Failed to save SMTP settings", "domainRequired": "Enter a domain name", "domainSubmitted": "Domain request submitted", "domainRequestFailed": "Failed to request domain", "verificationRecheckScheduled": "Verification re-check scheduled", "refreshStatusFailed": "Failed to refresh domain status", "domainRemovalScheduled": "Domain removal scheduled", "domainRemovalScheduledWithClear": "Domain removal scheduled and ticketing From address cleared", "removeDomainFailed": "Failed to remove domain" }, "tabs": { "inboundEmail": "Inbound Email", "outboundEmail": "Outbound Email" }, "outbound": { "intro": "Configure outbound email for your organization.", "providerTitle": "Outbound Provider", "providerDescription": "Choose how outbound emails are sent from your organization.", "providerPlaceholder": "Select outbound provider", "providerOptions": { "resend": "Nine Minds Managed", "smtp": "SMTP" }, "resendDescription": "Emails are sent through Nine Minds managed infrastructure. Add and verify a custom domain below.", "smtpDescription": "Emails are sent through your own SMTP server.", "smtpLabel": "SMTP", "upgradeNotice": "Managed email domains are not available on your current plan. Upgrade to use Nine Minds managed outbound infrastructure with custom domains.", "domainsTitle": "Managed Domains", "domainsDescription": "Add a custom domain and follow the DNS instructions to verify ownership.", "domainLabel": "Domain", "domainPlaceholder": "example.com", "addDomainButton": "Add Domain", "smtpConfigTitle": "SMTP Configuration", "smtpConfigDescription": "Enter your SMTP server details to send outbound email.", "smtp": { "hostLabel": "SMTP Host", "hostPlaceholder": "smtp.example.com", "portLabel": "Port", "usernameLabel": "Username", "usernamePlaceholder": "your-email@example.com", "passwordLabel": "Password", "passwordPlaceholder": "Enter password", "fromLabel": "From Address", "fromPlaceholder": "noreply@example.com", "fromHelp": "The default sender address for outbound emails.", "savingButton": "Saving...", "saveButton": "Save SMTP Settings" }, "ticketingFrom": { "title": "Ticketing From Address", "description": "Choose the email address that will appear in the From header on ticket notifications.", "smtpHint": "Address should use a domain associated with your SMTP server ({{domain}}). Replies work best when you use a connected inbound inbox.", "managedHint": "Address must use your outbound domain ({{domain}}). Replies work best when you use a connected inbound inbox.", "domainNotSet": "not set", "outboundRequiredTitle": "Outbound domain required", "smtpRequiredMessage": "Save your SMTP configuration with a from address before selecting a ticketing from address.", "managedRequiredMessage": "Add and verify a managed domain before selecting a ticketing from address.", "connectedInboxLabel": "Connected inbox", "customOptionLabel": "Other address on {{domain}}", "selectPlaceholder": "Select from address", "connectedInboxHelp": "Select a connected inbox to keep inbound replies threaded.", "customLabel": "From address", "customPlaceholder": "support@{{domain}}", "customSmtpHelp": "Use a domain your SMTP server is authorized to send from. Using a mismatched domain may cause delivery failures or spam filtering.", "customManagedHelp": "Must match {{domain}}. If this isn't one of your inbound inboxes, inbound ticket processing may not work.", "warningTitle": "Heads up", "errorTitle": "Fix the from address", "clearButton": "Clear From Address", "savingButton": "Saving...", "saveButton": "Save From Address" } }, "inbound": { "intro": "Configure inbound email routing and provider-specific automation." }, "dialogs": { "clearTicketingFrom": { "title": "Clear Ticketing From Address", "message": "Clear the saved ticketing From address? Ticket notifications will stop using a custom From address until you save a new one.", "confirm": "Clear From Address" }, "removeDomain": { "title": "Remove Managed Domain", "messageWithClear": "Remove {{domain}}? This will also clear the saved ticketing From address because this domain is currently active for outbound email.", "message": "Remove {{domain}}?", "fallbackDomain": "this domain", "confirm": "Remove Domain" }, "cancel": "Cancel" }, "validation": { "enterFromAddress": "Enter a from email address", "saveSmtpFirst": "Save your SMTP configuration with a from address first", "addOutboundFirst": "Add and verify an outbound domain before choosing a from address", "invalidEmail": "Enter a valid email address", "mustMatchDomain": "From address must use @{{domain}}", "customAddressThreadWarning": "Using a custom address may prevent inbound ticket replies from threading correctly.", "smtpDomainMismatchWarning": "This domain does not match your SMTP from address domain ({{domain}}). Emails may fail to deliver or be flagged as spam if your SMTP server is not authorized to send from this domain.", "notConnectedWarning": "Inbound ticket processing may not work with this address because it is not one of your connected inboxes." }, "domainList": { "loading": "Loading domains…", "empty": "No managed domains yet. Add one to get started.", "providerDomainId": "Provider domain ID: {{id}}", "providerFallback": "Managed via Resend", "failureReason": "Failure reason: {{reason}}", "recheckButton": "Re-check DNS", "removeButton": "Remove Domain", "dnsRecordsHeading": "DNS Records", "dnsRecordsHelp": "Copy each record below into your DNS provider (GoDaddy, Cloudflare, etc.). We cannot change your DNS for you.", "dnsEmpty": { "pending": "We asked Resend to generate the DNS records for this domain. Once they show up, copy them into your DNS provider because we cannot update it automatically.", "failed": "We still need DNS instructions from Resend. Click Re-check DNS and, when the records load, publish them inside your DNS provider.", "default": "DNS instructions are not available yet. Re-check DNS and copy each record into your DNS provider as soon as it appears." } }, "dnsRecords": { "status": { "matched": "Detected", "mismatch": "Mismatch", "missing": "Not Found", "unknown": "Waiting for Check" }, "detectedValues": "Detected values", "defaultEmpty": "We are preparing the DNS records for this domain. As soon as they appear, copy them into your DNS provider because we cannot update it for you.", "summary": "Matched {{matched}} of {{total}} required DNS records", "summaryWithCheckedAt": "Matched {{matched}} of {{total}} required DNS records • Last checked {{checkedAt}}.", "lastCheckedNoRecords": "Last checked {{checkedAt}}. We have not detected any records yet.", "copyButton": "Copy", "copyAriaLabel": "Copy DNS value", "copied": "Copied to clipboard", "copyFailed": "Failed to copy", "checkedAt": "Checked {{checkedAt}}", "ttlLabel": "TTL:", "priorityLabel": "Priority:", "missingHelp": "We have not detected this record in DNS yet. Double-check that it exists in your DNS provider with the exact value shown above.", "mismatchHelp": "The DNS record exists, but the value does not match what Resend expects.", "matchedHelp": "Detected value matches what we expected.", "unknownHelp": "We have not checked DNS yet. Re-check DNS to run verification." } }, "inboundRules": { "actions": { "addRule": "Add Rule", "aiClassify": "Classify with AI", "aiClassifyUpsell": "Requires the AI Assistant add-on", "extractAssign": "Assign client from extracted text", "setDestination": "Route to destination", "skip": "Skip email (no ticket)" }, "badges": { "allMailboxes": "All mailboxes" }, "empty": { "description": "Create a rule to skip status-update emails or assign tickets to clients named in the subject line.", "title": "No inbound rules configured" }, "errors": { "aliasAdd": "Failed to add alias", "delete": "Failed to delete rule", "load": "Failed to load inbound rules", "reorder": "Failed to reorder rules", "save": "Failed to save rule", "test": "Failed to test rule", "update": "Failed to update rule" }, "extraction": { "after": "Text after marker", "before": "Text before marker", "between": "Text between delimiters", "regex": "Regular expression (advanced)" }, "fields": { "bodyText": "Body text", "fromAddress": "From address", "fromDomain": "From domain", "subject": "Subject", "toAddress": "To/CC address" }, "form": { "action": "Action", "active": "Active", "addCondition": "Add condition", "aiAllowAssign": "May assign clients", "aiAllowSkip": "May skip emails", "aiInstruction": "Instruction", "aiInstructionPlaceholder": "e.g. Determine which customer this monitoring alert is about.", "aiUpsell": "Classify with AI is available with the Enterprise AI Assistant add-on — emails are classified by intent with no patterns to maintain.", "cancel": "Cancel", "conditions": "Conditions (all must match)", "create": "Create rule", "createTitle": "Create Inbound Rule", "description": "Define when the rule matches and what happens to the email. Use the tester below to verify against a sample before saving.", "destination": "Destination (ticket defaults)", "destinationPlaceholder": "Select a defaults set", "editTitle": "Edit Inbound Rule", "endDelimiter": "End delimiter", "extractFrom": "Extract from", "extractionTemplate": "Extraction", "fallbackDestination": "Fallback destination", "first": "First", "last": "Last", "mailboxes": "Apply to mailboxes", "mailboxesHint": "Leave all unchecked to apply this rule to every mailbox.", "marker": "Marker text", "markerPlaceholder": "e.g. Customer:", "matchHint": "The extracted text is matched against client names and client aliases (case-insensitive).", "name": "Rule name", "namePlaceholder": "e.g. Huntress customer routing", "noMailboxes": "No mailboxes configured yet.", "noMatchFallback": "Route to a fallback destination", "noMatchProceed": "Continue with later rules / normal processing", "noMatchSkip": "Skip the email", "occurrence": "Occurrence", "onNoMatch": "If no client matches", "pattern": "Pattern (capture group 1 is the client name)", "regexPlaceholder": "Regular expression", "saving": "Saving…", "startDelimiter": "Start delimiter", "update": "Update rule", "valuePlaceholder": "Value" }, "header": { "description": "Match inbound email by sender or subject to skip noise, assign the right client, or route to a destination. Rules run in order; the first match wins.", "title": "Inbound Email Rules" }, "help": { "items": { "aliases": "• Extracted names match client names and aliases. Manage aliases on the client record, or add them from the rule tester.", "audit": "• Skipped emails stay auditable in email processing diagnostics, tagged with the rule that skipped them.", "order": "• Rules run top to bottom on new inbound email; the first matching rule applies.", "replies": "• Replies to existing tickets always become comments — rules never touch them." }, "title": "How It Works" }, "loading": "Loading inbound rules...", "menu": { "delete": "Delete", "deleting": "Deleting…", "edit": "Edit" }, "operators": { "contains": "contains", "endsWith": "ends with", "equals": "equals", "matchesRegex": "matches regex", "startsWith": "starts with" }, "summary": { "aiClassify": "Classify with AI", "extractAssign": "Assign client from {{source}}", "setDestination": "Route to destination", "skip": "Skip email (no ticket)" }, "tester": { "alias": "alias", "aliasAdd": "Add alias", "aliasAdded": "Alias added. Run the test again to see it match.", "aliasAdding": "Adding…", "aliasClientPlaceholder": "Select a client", "aliasLabel": "Add \"{{value}}\" as an alias of", "body": "Body text", "clientMatched": "Matched client via {{source}}", "clientName": "client name", "extracted": "Extracted value:", "from": "From", "noClient": "No client matched", "outcome": { "assignClient": "Ticket assigned to client \"{{client}}\"", "fallback": "No client matched — ticket routed to the fallback destination", "none": "Rule did not resolve — normal processing continues", "setDestination": "Ticket routed to the selected destination", "skip": "Email skipped — no ticket created" }, "run": "Run test", "running": "Testing…", "subject": "Subject", "title": "Test this rule", "to": "To" } } }