Follow the steps below to build a CRM & Guest Engagement integration with the Toast platform.
This integration allows you to provide a CRM solution using order history.
To follow these instructions, you must have the following scopes:
-
config:read
-
labor:read
-
labor.employees:read
-
menus:read
-
orders:read
-
restaurants:read
-
guest.pi:read
-
delivery_info.address:read
You can retrieve a list of your current scopes through your Toast developer portal account. If you lack the required scopes, refer to the Integration partnership process guide for instructions on requesting access.
Review and implement the instructions in How to build a Toast integration.
To familiarize yourself with the structure of an order, read the Orders API overview and the Order object summary. For more information about the orders API, see the reference documentation.
The guest's first and last name, email address, and phone number
are found in the Customer
object of the orders API.
To familiarize yourself with menu structure, read the menu hierarchy documentation.
Use the menus API to retrieve a full menu from a Toast POS location so that you understand the menu structure.
Use the configuration API to retrieve the configuration information you will need to properly understand order information. Configuration options you may need include:
All Toast orders contain a dining option with defined
behavior. When polling for Toast orders, the Customer
object will only appear in orders where the diningOption
behavior is TAKE_OUT
or DELIVERY
. You can
understand diningOption
behavior by polling the
/diningOptions
endpoint of the configuration API. Your
integration should consume orders where the diningOption behavior is
either TAKE_OUT
or DELIVERY
.
For more information about the /diningOptions
endpoint of the configuration API, see the reference
documentation.
If your integration tracks the servers who have previously worked
with a certain customer, you will need to use the labor API to retrieve
relevant server information. To get information about all employees,
make a GET
request to the /employees
endpoint
of the labor API.
For more information about the labor API, see the reference documentation.
When a restaurant first connects to your integration, they may expect to see some historical information already displayed in your system.
Define how many days of historical cash transactions you retrieve when a restaurant first connects to your integration.
Toast support recommends that you retrieve twelve weeks of
historical data when a restaurant first connects to your integration.
Requests to the /ordersBulk
endpoint for historical data
using the startDate
and endDate
query
parameters must not exceed intervals greater than one month with calls
spaced at least 5-10 seconds apart.
To report on order information, use the orders updated webhook to receive order updates as they occur.
Note |
You can also use the /ordersBulk endpoint of the orders API to retrieve orders using the startDate and endDate parameters. |
The Customer
object in the orders API includes the
name, email address, and phone number of the guest who placed the
order.
Note |
The |
The deliveryInfo object contains the delivery address and delivery notes.
The Selections
object within the
Checks
object in the order response contains an
Item
object. Make a GET
request to the
/menus
endpoint of the menus API to see relevant
information for the item in the check.
To get information about the employee associated with an order,
you will need to map the guid
in the Server
object in the orders API response to the employees configured for the
location. Make a GET
request to the
/employees
endpoint of the labor API to see employee
information.
When creating your integration functionality, consider tracking the following information as it relates to the customer.
Object |
Values |
---|---|
Orders |
Consider displaying the following reporting information for orders:
|
Checks |
Consider displaying the following reporting information for checks:
|
Selections |
Consider displaying the following reporting information for menu item selections:
|
Payments |
Consider displaying the following reporting information for payments:
|