Skip to content

Smart Submissions

Smart Submissions (also called Send Flow) is a Workbench module that monitors a shared email mailbox. Inbound submission emails are processed using AI text extraction and OCR on PDF attachments. The extracted data pre-populates the risk submission form, reducing manual data entry.

How it works

  1. A shared mailbox receives an inbound submission email
  2. Workbench polls the mailbox at a configured interval
  3. AI and OCR extract data from the email body and PDF attachments
  4. The email appears in the Smart Submissions view with a processing spinner
  5. Once complete, it moves to the Not Known column, ready for triage
  6. A user reviews the email, assigns priority, and clicks New Risk
  7. The submission form opens with AI-suggested values highlighted in green
  8. The user reviews, corrects, and submits — creating the risk as normal

Enabling Smart Submissions

Smart Submissions requires two config changes:

  1. Set features.smartSubmission: true in ui_config.json
  2. Configure the smartSubmission block in ui_config.json (see below)

The backend polling behaviour (gmailSyncPeriodInSeconds, ruleBasedTriageEnabled) is configured in be_config.json under smartSubmissionConfiguration. Mailbox credentials and connection details are set in dynamodb/{env}/data.json.


be_config.json settings

Setting Description
smartSubmissionConfiguration.gmailSyncPeriodInSeconds How frequently the mailbox is polled (base repository default: 60 seconds)
smartSubmissionConfiguration.ruleBasedTriageEnabled Enable/disable automatic rules-based triage
smartSubmissionConfiguration.useRiskTagsForEmailRiskStatus When true, email risk status is derived from risk tags

ui_config.json — smartSubmission block

The smartSubmission block in ui_config.json controls the UI behaviour of the Smart Submissions module. All fields below are from the UiConfigSmartSubmission interface in the platform source.

Email board

"emailRiskBoard": {
  "defaultSortOrder": "DESC",
  "emailRiskQueryParams": {
    "pageSize": 20
  },
  "cardHighlightDuration": 3000
}
Field Description
emailRiskBoard.defaultSortOrder Default sort order for the email board — "ASC" or "DESC"
emailRiskBoard.emailRiskQueryParams.pageSize Number of emails to load per page
emailRiskBoard.cardHighlightDuration Duration in milliseconds that a card remains highlighted after an action

SLA configuration

The serviceLevelAgreementConfig block controls the SLA countdown timers shown on each email card. Timers are configured per processing status using the exact RiskProcessingStatus string values:

"serviceLevelAgreementConfig": {
  "TRIAGE_P1": {
    "limit": 480,
    "warning": 360,
    "danger": 240
  },
  "TRIAGE_P2": {
    "limit": 1440,
    "warning": 1200,
    "danger": 960
  },
  "TRIAGE_P3": {
    "limit": 2880,
    "warning": 2400,
    "danger": 1920
  }
}

All time values are in minutes.

Field Description
limit Total SLA time in minutes — the card turns red when this is exceeded
warning Minutes elapsed at which the card turns amber
danger Minutes elapsed at which the card turns darker red (imminent breach)

The valid status keys for Smart Submissions SLA are NOT_KNOWN, TRIAGE_P1, TRIAGE_P2, TRIAGE_P3, and EMAIL_DECLINED. See Enum Reference for full status definitions.

Folders

"folders": {
  "primaryFolders": ["Inbox", "Sent", "Archive"]
}

primaryFolders defines the folder names shown in the inbox sidebar. Set these to match the folder structure in the connected shared mailbox.

Form behaviour

"form": {
  "hideSuggestionsFor": ["insuredName"],
  "redirectToRiskDetailsPageAfterSaving": true
}
Field Description
form.hideSuggestionsFor Array of submission field keys for which AI suggestions should not be displayed. Valid values are SubmissionField enum values (e.g. "insuredName", "inceptionDate").
form.redirectToRiskDetailsPageAfterSaving If true, saving the risk from the Smart Submission view redirects to the risk detail page rather than returning to the email inbox.

Feature toggles

Flag Type Description
enableEmailReply boolean Allows users to reply to emails directly from within Workbench
enableAddNewFolder boolean Allows users to create new inbox folders from the UI
enableAttachRiskDocumentsToEmail boolean Allows attaching risk documents when replying to an email from Workbench
enableRestartPipeline boolean Allows the AI extraction pipeline to be restarted for an email
showAddAttachments boolean Shows the add-attachments control in the Smart Submission form
"inbox": {
  "searchEnabled": true
}

Enables or disables the search bar in the Smart Submissions inbox.

Data export

"exportData": {
  "enabled": true,
  "defaultKeys": ["insuredName", "inceptionDate", "premium"]
}
Field Description
exportData.enabled If true, the export-to-CSV button is visible in the Smart Submissions inbox
exportData.defaultKeys The submission field keys that are included by default in the CSV export

Email submission summary

"emailSubmissionSummary": {
  "formTabs": ["RISK_DETAILS", "COVERAGES"]
}

formTabs defines which sections of the submission form are shown in the email summary panel alongside the email. Values must be valid FormTab enum values for your core platform version — confirm with your delivery lead.

Attachment preview

"hideAttachmentPreviewForExtensions": [".eml", ".msg"]

File extensions for which the inline attachment preview is suppressed. Users can still download these file types; they just won't render an inline preview.

Date format

"emailDateFormat": "DD/MM/YYYY HH:mm"

Date format used when displaying email timestamps in the Smart Submissions view. Uses standard Moment.js format tokens.


Mailbox setup

Smart Submissions requires a dedicated shared mailbox — one per line of business (one-to-one relationship).

  • The mailbox is connected to Workbench by the DevOps/infrastructure team
  • Users forward inbound submission emails to the shared mailbox, or the client configures routing rules

Warning

Individual user inboxes are never connected to Workbench. Only dedicated shared mailboxes are supported. Coordinate mailbox provisioning with DevOps well in advance of go-live.


Kanban columns

Column Status value Meaning
Not Known NOT_KNOWN Email processed but not yet triaged. Default after AI processing.
High TRIAGE_P1 Marked as high priority
Medium TRIAGE_P2 Marked as medium priority
Low TRIAGE_P3 Marked as low priority
Decline EMAIL_DECLINED Triaged as a decline — no new risk will be created

AI and OCR processing

Process What it does
OCR Extracts text from PDF attachments using optical character recognition
AI text analysis Identifies submission form field values from the email body and extracted text
AI summary Generates a human-readable summary shown at the top of the submission form

Note

Image files (PNG, JPG, GIF) are not processed by OCR or AI — they appear as attachments but will not yield extracted data. Only PDF attachments are processed.


Rules-based triage

When ruleBasedTriageEnabled is true, the rules engine evaluates incoming emails and can automatically assign triage status or route emails based on configured rules. This enables straight-through processing for predictable submission types.


Linking emails to existing risks

Not every inbound email is for a new risk. From the Smart Submissions view:

  • Link to existing risk — search for and attach the email to an existing risk record
  • Show on dashboard — jump to the corresponding risk card on the main Kanban board