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