Skip to main content

Inbox and notifications

Read and send email from the company Inbox, manage the inbound email address, chat with drivers, and work with in-app notifications.

Paths are relative to https://api.rushhourapp.com/api/v1. See the API reference overview for how to read each entry.

Inbox email​

MethodPathSummary
GET/EmailMessagesList emails.
GET/EmailMessages/{id}Get an email.
DELETE/EmailMessages/{id}Delete an email from the Inbox.
GET/EmailMessages/{id}/attachments/{attachmentId}Download an email attachment.
POST/EmailMessages/{id}/readMark an email as read.
POST/EmailMessages/{id}/unreadMark an email as unread.
POST/EmailMessages/composeCompose and send a new email from the Inbox.
POST/EmailMessages/read-allMark all inbound emails as read.
GET/EmailMessages/recipient-suggestionsSuggest recipient email addresses that match a search.
GET/EmailMessages/unread-countGet the number of unread inbound emails.

GET /EmailMessages​

List emails.

Parameters

NameInTypeRequiredDescription
CustomerIdqueryinteger (int32)No
DirectionquerystringNo
FolderquerystringNo
FromDatequerystring (date-time)No
InvoiceIdqueryinteger (int32)No
IsReadquerybooleanNo
ItemsPerPagequeryinteger (int32)No
OrderIdqueryinteger (int32)No
Pagequeryinteger (int32)No
QuoteIdqueryinteger (int32)No
SearchTermquerystringNo
SortByquerystringNo
SortDirectionqueryinteger (int32)NoOne of: 0 (Ascending), 1 (Descending).
StatusesquerystringNo
ToDatequerystring (date-time)No

Response: envelope; data is EmailMessageListDtoPagedList.

GET /EmailMessages/{id}​

Get an email.

Parameters

NameInTypeRequiredDescription
idpathinteger (int32)Yes

Response: envelope; data is EmailMessageDetailDto.

DELETE /EmailMessages/{id}​

Delete an email from the Inbox.

Parameters

NameInTypeRequiredDescription
idpathinteger (int32)Yes

Response: envelope; data has no documented shape.

GET /EmailMessages/{id}/attachments/{attachmentId}​

Download an email attachment.

Parameters

NameInTypeRequiredDescription
attachmentIdpathinteger (int32)Yes
idpathinteger (int32)Yes

Response: a file download, not JSON.

POST /EmailMessages/{id}/read​

Mark an email as read.

Parameters

NameInTypeRequiredDescription
idpathinteger (int32)Yes

Response: envelope; data has no documented shape.

POST /EmailMessages/{id}/unread​

Mark an email as unread.

Parameters

NameInTypeRequiredDescription
idpathinteger (int32)Yes

Response: envelope; data has no documented shape.

POST /EmailMessages/compose​

Compose and send a new email from the Inbox.

Request body: ComposeEmailRequest (JSON).

Response: envelope; data is integer (int32).

POST /EmailMessages/read-all​

Mark all inbound emails as read.

Response: envelope; data has no documented shape.

GET /EmailMessages/recipient-suggestions​

Suggest recipient email addresses that match a search.

Parameters

NameInTypeRequiredDescription
qquerystringNo

Response: envelope; data is array of RecipientSuggestionDto.

GET /EmailMessages/unread-count​

Get the number of unread inbound emails.

Response: envelope; data is integer (int32).

Inbound email address​

MethodPathSummary
GET/InboundEmailSettingsGet the company's inbound email address and its settings.
PUT/InboundEmailSettings/allowed-domainsReplaces the sender-domain allowlist.
PUT/InboundEmailSettings/custom-emailSet your own mailbox that forwards email to the inbound address.
PATCH/InboundEmailSettings/enabledTurn the inbound email address on or off.
PUT/InboundEmailSettings/local-partChoose the part of the inbound email address before the at sign.
POST/InboundEmailSettings/regenerateReplace the inbound email address with a new one; the old address stops working immediately.

GET /InboundEmailSettings​

Get the company's inbound email address and its settings.

Response: envelope; data is InboundEmailAddressDto.

PUT /InboundEmailSettings/allowed-domains​

Replaces the sender-domain allowlist.

Request body: SetInboundEmailAllowedDomainsDto (JSON).

Response: envelope; data is InboundEmailAddressDto.

PUT /InboundEmailSettings/custom-email​

Set your own mailbox that forwards email to the inbound address.

Request body: SetInboundEmailCustomEmailDto (JSON).

Response: envelope; data is InboundEmailAddressDto.

PATCH /InboundEmailSettings/enabled​

Turn the inbound email address on or off.

Request body: SetInboundEmailEnabledDto (JSON).

Response: envelope; data is InboundEmailAddressDto.

PUT /InboundEmailSettings/local-part​

Choose the part of the inbound email address before the at sign.

Request body: SetInboundEmailLocalPartDto (JSON).

Response: envelope; data is InboundEmailAddressDto.

POST /InboundEmailSettings/regenerate​

Replace the inbound email address with a new one; the old address stops working immediately.

Response: envelope; data is InboundEmailAddressDto.

Chat​

MethodPathSummary
GET/ChatsSearches chat threads for the current company.
GET/Chats/{chatId}Retrieves a single chat thread by its ID.
POST/Chats/{chatId}/approveApproves a driver-to-driver chat, unmuting it for its participants.
POST/Chats/{chatId}/archiveArchives a chat, making it read-only.
GET/Chats/{chatId}/messagesRetrieves a page of messages for a chat.
GET/Chats/{chatId}/participantsLists the participants of a chat.
POST/Chats/{chatId}/participants/driver/{driverId}Adds a driver to a chat as a participant.
POST/Chats/{chatId}/readMarks a chat as read for the current user, clearing its unread count.
POST/Chats/driver-to-driverCreates a driver-to-driver chat, pending admin approval.
DELETE/Chats/driver/{driverId}/accessRevokes a driver's access to every chat in the company.
GET/Chats/driver/{driverId}/officeGet driver office chat.
POST/Chats/groupCreate group chat.
POST/Chats/messagesSends a message to a chat.
DELETE/Chats/messages/{chatMessageId}Delete a chat message so it no longer appears in the chat. Only the sender or a Company Admin can delete a message.
GET/Chats/office-inboxGet office inbox.
GET/Chats/order/{orderId}Get order chat.
POST/Chats/order/{orderId}/archiveArchives the chat attached to an order, typically when the order is completed.
GET/Chats/route/{routeId}Gets or creates the route-based chat for a route, with the route's assigned driver enrolled as a participant.
POST/Chats/route/{routeId}/archiveArchives the route-based chat when a route is completed or archived.
POST/Chats/route/{routeId}/restoreReopens an archived route chat.
GET/Chats/unread-summaryGets the current user's unread-message totals across all chats, broken down by chat type.

GET /Chats​

Searches chat threads for the current company.

Parameters

NameInTypeRequiredDescription
DriverIdqueryinteger (int32)No
OrderIdqueryinteger (int32)No
Pagequeryinteger (int32)No
PageSizequeryinteger (int32)No
RouteIdqueryinteger (int32)No
ScopequerystringNo
SearchTermquerystringNo
SortByquerystringNo
SortDirectionquerystringNo
TypequerystringNo
UserIdquerystringNo

Response: array of ChatDto as the whole response body, without the envelope.

GET /Chats/{chatId}​

Retrieves a single chat thread by its ID.

Parameters

NameInTypeRequiredDescription
chatIdpathinteger (int32)YesUnique identifier of the chat.

Response: ChatDto as the whole response body, without the envelope.

POST /Chats/{chatId}/approve​

Approves a driver-to-driver chat, unmuting it for its participants.

Required access: the Company Admin role.

Parameters

NameInTypeRequiredDescription
chatIdpathinteger (int32)YesUnique identifier of the driver-to-driver chat to approve.

Response: envelope; data has no documented shape.

POST /Chats/{chatId}/archive​

Archives a chat, making it read-only.

Required access: the Company Admin role.

Parameters

NameInTypeRequiredDescription
chatIdpathinteger (int32)YesUnique identifier of the chat to archive.

Response: envelope; data has no documented shape.

GET /Chats/{chatId}/messages​

Retrieves a page of messages for a chat.

Parameters

NameInTypeRequiredDescription
chatIdpathinteger (int32)YesUnique identifier of the chat whose messages are requested.
pagequeryinteger (int32)No1-based page number, counting backwards from the newest message. Default: 1.
pageSizequeryinteger (int32)NoNumber of messages per page. Default: 50.

Response: array of ChatMessageDto as the whole response body, without the envelope.

GET /Chats/{chatId}/participants​

Lists the participants of a chat.

Parameters

NameInTypeRequiredDescription
chatIdpathinteger (int32)YesUnique identifier of the chat.

Response: array of ChatParticipantDto as the whole response body, without the envelope.

POST /Chats/{chatId}/participants/driver/{driverId}​

Adds a driver to a chat as a participant.

Required access: the Company Admin role.

Parameters

NameInTypeRequiredDescription
chatIdpathinteger (int32)YesUnique identifier of the chat to add the driver to.
driverIdpathinteger (int32)YesUnique identifier of the driver being added.

Response: envelope; data has no documented shape.

POST /Chats/{chatId}/read​

Marks a chat as read for the current user, clearing its unread count.

Parameters

NameInTypeRequiredDescription
chatIdpathinteger (int32)YesUnique identifier of the chat to mark read.

Response: envelope; data has no documented shape.

POST /Chats/driver-to-driver​

Creates a driver-to-driver chat, pending admin approval.

Required access: the Company Admin role.

Request body: CreateDriverToDriverChatDto (JSON).

Response: envelope; data is ChatDto.

DELETE /Chats/driver/{driverId}/access​

Revokes a driver's access to every chat in the company.

Required access: the Company Admin role.

Parameters

NameInTypeRequiredDescription
driverIdpathinteger (int32)YesUnique identifier of the driver whose chat access is being revoked.

Response: envelope; data has no documented shape.

GET /Chats/driver/{driverId}/office​

Get driver office chat.

Parameters

NameInTypeRequiredDescription
driverIdpathinteger (int32)YesUnique identifier of the driver.

Response: ChatDto as the whole response body, without the envelope.

POST /Chats/group​

Create group chat.

Required access: the Company Admin role.

Request body: CreateGroupChatDto (JSON).

Response: envelope; data is ChatDto.

POST /Chats/messages​

Sends a message to a chat.

Request body: SendMessageDto (JSON).

Response: envelope; data is ChatMessageDto.

DELETE /Chats/messages/{chatMessageId}​

Delete a chat message so it no longer appears in the chat. Only the sender or a Company Admin can delete a message.

Parameters

NameInTypeRequiredDescription
chatMessageIdpathinteger (int32)YesUnique identifier of the message to delete.

Response: envelope; data has no documented shape.

GET /Chats/office-inbox​

Get office inbox.

Response: ChatDto as the whole response body, without the envelope.

GET /Chats/order/{orderId}​

Get order chat.

Parameters

NameInTypeRequiredDescription
orderIdpathinteger (int32)YesUnique identifier of the order whose chat is being opened.

Response: ChatDto as the whole response body, without the envelope.

POST /Chats/order/{orderId}/archive​

Archives the chat attached to an order, typically when the order is completed.

Required access: the Company Admin role.

Parameters

NameInTypeRequiredDescription
orderIdpathinteger (int32)YesUnique identifier of the order whose chat should be archived.

Response: envelope; data has no documented shape.

GET /Chats/route/{routeId}​

Gets or creates the route-based chat for a route, with the route's assigned driver enrolled as a participant.

Parameters

NameInTypeRequiredDescription
routeIdpathinteger (int32)Yes

Response: ChatDto as the whole response body, without the envelope.

POST /Chats/route/{routeId}/archive​

Archives the route-based chat when a route is completed or archived.

Required access: the Company Admin role.

Parameters

NameInTypeRequiredDescription
routeIdpathinteger (int32)Yes

Response: envelope; data has no documented shape.

POST /Chats/route/{routeId}/restore​

Reopens an archived route chat.

Required access: the Company Admin role.

Parameters

NameInTypeRequiredDescription
routeIdpathinteger (int32)Yes

Response: envelope; data has no documented shape.

GET /Chats/unread-summary​

Gets the current user's unread-message totals across all chats, broken down by chat type.

Response: envelope; data is ChatUnreadSummaryDto.

Notifications​

Coming soon

A new notification category, QuickbooksConnection, is on its way. It is not part of the live API yet, so the category values listed on this page and in the notification models do not include it. Once it is released, QuickbooksConnection can appear as the category of a notification and of a notification preference, GET /Notifications/preferences lists it with in-app on and email off for users who have not changed it, and it is accepted by the Category filter of GET /Notifications and by PUT /Notifications/preferences. Notifications in this category tell your company's staff — never Customer Portal users — that the company's QuickBooks Online connection has expired, or that QuickBooks was disconnected while invoices or payments were still waiting to be sent to it. If your integration reads category, make sure it copes with a value it does not recognise.

MethodPathSummary
GET/NotificationsList the signed-in user's notifications, newest first.
POST/Notifications/{id}/actionExecutes the Approve/Deny choice on one owned, pending notification.
POST/Notifications/{id}/hideHides one owned notification from the panel.
POST/Notifications/{id}/readMarks one owned notification read.
POST/Notifications/{id}/snoozeSnoozes one owned notification until an absolute UTC time.
POST/Notifications/{id}/unreadMarks one owned notification unread.
GET/Notifications/broadcastsList the announcements currently shown to all users.
GET/Notifications/preferencesGet the signed-in user's notification preferences.
PUT/Notifications/preferencesUpdate the signed-in user's notification preferences.
POST/Notifications/read-allMarks every visible unread notification of the current user read.
GET/Notifications/unread-countGet the number of unread notifications.

GET /Notifications​

List the signed-in user's notifications, newest first.

Parameters

NameInTypeRequiredDescription
CategoryquerystringNoOne of: General, SystemAnnouncement, Documents, OrderLateDelivery, OrderStatus.
IncludeHiddenquerybooleanNo
ItemsPerPagequeryinteger (int32)No
Pagequeryinteger (int32)No
SearchTermquerystringNo
SortByquerystringNo
SortDirectionqueryinteger (int32)NoOne of: 0 (Ascending), 1 (Descending).
UnreadOnlyquerybooleanNo

Response: envelope; data is NotificationDtoPagedList.

POST /Notifications/{id}/action​

Executes the Approve/Deny choice on one owned, pending notification.

Parameters

NameInTypeRequiredDescription
idpathinteger (int32)Yes

Request body: NotificationActionRequest (JSON).

Response: envelope; data is NotificationDto.

POST /Notifications/{id}/hide​

Hides one owned notification from the panel.

Parameters

NameInTypeRequiredDescription
idpathinteger (int32)Yes

Response: envelope; data is boolean.

POST /Notifications/{id}/read​

Marks one owned notification read.

Parameters

NameInTypeRequiredDescription
idpathinteger (int32)Yes

Response: envelope; data is boolean.

POST /Notifications/{id}/snooze​

Snoozes one owned notification until an absolute UTC time.

Parameters

NameInTypeRequiredDescription
idpathinteger (int32)Yes

Request body: SnoozeNotificationRequest (JSON).

Response: envelope; data is boolean.

POST /Notifications/{id}/unread​

Marks one owned notification unread.

Parameters

NameInTypeRequiredDescription
idpathinteger (int32)Yes

Response: envelope; data is boolean.

GET /Notifications/broadcasts​

List the announcements currently shown to all users.

Response: envelope; data is array of BroadcastDto.

GET /Notifications/preferences​

Get the signed-in user's notification preferences.

Response: envelope; data is array of NotificationPreferenceDto.

PUT /Notifications/preferences​

Update the signed-in user's notification preferences.

Request body: array of NotificationPreferenceUpdateItem (JSON).

Response: envelope; data is boolean.

POST /Notifications/read-all​

Marks every visible unread notification of the current user read.

Response: envelope; data is boolean.

GET /Notifications/unread-count​

Get the number of unread notifications.

Response: envelope; data is integer (int32).