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:
|