Emails
GoRate sends seven emails. Who receives each one is set per template - see Who gets which email.
| Sent when | Default recipients | Attachments | |
|---|---|---|---|
| Approval pending | Validation passed and the template has approvers | Approvers (To), uploader and list (Cc) | Skipped records - workbook and text file, if any |
| Auto-approved | Validation passed and the template has no approvers | Uploader, list | Skipped records - workbook and text file, if any |
| Validation failed | Validation rejected the file | Uploader, list | Validation report workbook |
| Rejected | An approver rejected the file | Approvers, uploader, list | None - the comment is in the email |
| Cancelled | The upload was withdrawn | Approvers, list | None - the reason is in the email |
| Completed | Loading finished - at least one record in OTM, or every record skipped at validation | Approvers, uploader, list | Outcome - workbook and text file, when anything did not load |
| Failed | The upload failed | Uploader, list | None - the error is in the email |
List is the template's extra notification addresses. Whoever needs to act is on the To line; everyone else is copied.
When the upload will not load straight away
Projects that load into OTM outside business hours hold an approved upload until the execution time. When the window is open, the Approval pending and Auto-approved emails say so and give the time:
- Auto-approved states it directly - nothing stands between that email and the load.
- Approval pending puts it conditionally. Approval is what triggers the hold, and an approver acting after hours loads the file straight away, so the email cannot promise a time on their behalf.
Both say around the time rather than at it: held uploads are released together and then load one after another, so the execution time is when the queue starts, not when your file goes. The exact release time is recorded on the upload once it reaches Staged - see Publishing and GoRate Setting.
Who gets which email
Each template has a grid - Template Manager - Access - Notification Emails - with a row per email and a column each for Approvers, Uploader and This list. The defaults above apply until someone changes a box.
- Approval pending can drop its approvers like any other row - useful when approvals are watched from a shared mailbox on This list and the approvers' own copy is just duplicate mail. The grid warns when a row would reach nobody at all.
- Auto-approved never goes to approvers - it is only sent when there are none.
See Template Manager.
The skipped-records attachments
When validation set records aside, the approval (or auto-approved) email carries two files:
| File | What it is for |
|---|---|
| skipped records.xlsx | One row per skipped record, to filter and sort |
| skipped records.txt | The same records grouped by reason, with a count per reason - the quickest way to see why |
Both are named after your file. Those records will not reach OTM, and approving the file does not change that. Read them before approving - see Approvals.
When nothing is loaded, and no approval was asked for
A file whose records are all skipped at validation has nothing to send to OTM and therefore nothing to approve. GoRate finishes it there: no approval request goes out, and the completion email arrives in its place.
That email says so rather than leaving you to work it out:
- the subject reads Completed, nothing loaded;
- the body opens with nothing was sent to OTM - all N record(s) were skipped at validation;
- and it states that no approval was needed, because there was nothing to approve and nothing to load.
So an approver who expected an approval request and received a completion email instead has not missed one - none was sent. The attached workbook lists every skipped record and its reason, which is where to look for why the file emptied out.
Reading the completion email
The header names your file and, under it, the Upload type - Rate, Capacity, Commitment, Allocation or Mixed - read from the template the file was uploaded against. It answers the question a file name alone does not: whether this run loaded rates or a routing guide. Every GoRate email carries the same header, and a template that has since been deleted simply leaves the line out.
It then carries two tables, and they answer different questions.
Where every record ended up
This one is about your file:
| Line | Meaning |
|---|---|
| Records in your file | What you uploaded |
| Loaded into OTM | Reached OTM successfully |
| Skipped at validation | Set aside by validation - never sent. See Validation |
| Rejected by OTM | Sent, but not loaded - refused by OTM, or in a batch that was not accepted |
These four should account for every record: in your file = loaded + skipped + rejected.
Rows written to OTM
This one is about OTM tables, and the numbers are deliberately larger:
One record writes several rows across several OTM tables. A single rate creates its rate geo, its cost group, its costs, its weight breaks and its lane. This table shows what OTM received; it is not meant to match the record counts above.
Rate expiries from an Expire & process run have their own row, RATE_GEO (expiry), separate from the new rates.
The outcome attachments
If anything did not load - or a lane was given a default transit time - the email carries an outcome.xlsx and an outcome.txt, named after your file, listing each record with what happened to it and why. A batch that was not accepted is named there with its reason, as it is in the Status Tracker.