Order Status SMS
If you are looking to customize your SMS, submit a ticket with our integrations team by going to Support in your developer portal.
DoorDash Drive sends SMS messages with updates on the progress of a delivery to help the customer receiving that delivery (dropoff_phone_number
) keep track of the delivery and prepare for its arrival.
A critical component of the order status SMS is sharing the delivery tracking page with the customer. The tracking page provides up-to-date information on the status of their order and allows the customer to update delivery instructions. You can also embed the tracking page in your UI post-checkout. Learn more about embedding the delivery tracking page.
SMS Enablement
What needs to be true for SMS to send?
- ✅ SMS is enabled for the developer, business, or both
- ✅ Merchant sends an API request with notifications set to true (see API version guidance below)
- ✅ Customer is opted in to receive DoorDash SMS
By default, SMS is enabled for all businesses tied to your developer portal (developer level).
In addition to having SMS enabled for either all businesses or a single business, the API request must inform DoorDash that we should send SMS for a single delivery request.
API Field Requirements
Drive API (V2):
"dropoff_contact_send_notifications": true
Drive Classic API (V1):
"customer": {
"should_send_notifications": true
}
If these fields are set to false
, no SMS will be sent, regardless of settings.
If a customer has previously opted out of DoorDash SMS, they will not receive messages even if SMS is enabled and the API field is set to true
.
Hierarchies
SMS enablement can be configured at:
- Developer level (default, applies to all businesses)
- Business level (overrides developer level)
Store-level SMS is not supported.
Enabling at the developer level covers all of the businesses associated with your developer portal. If you want custom settings per business, you can have SMS configured at the business level which will override developer level settings.
Since developer level is set by default, you can request that business level SMS is configured from the DoorDash team. Business level configuration is only needed if you want different SMS enabled or different copy to be sent out per business.
Customizing SMS Copy
DoorDash strongly recommends that all SMS notifications are enabled and use the default copy set because it allows for the customer to have the most up to date information on the status of their order, reducing confusion and improving quality.
If you want to disable SMS or update the copy for a message, go to ‘support’ in your developer portal and submit a ticket for integrations team support or work directly with your integrations DRI.
Frequently Asked Questions
Do SMS messages always come from the same number?
No. Order status SMS can come from multiple phone numbers.
Why aren’t SMS notifications being sent?
Check:
- SMS are enabled for your developer and/or business(es)
- Correct API fields are set to
true
dropoff_phone_number
is properly formatted in E.164 international format
If all are correct and SMS still fails, the customer may have opted out previously.
How do customers opt out?
Replying “STOP” to any DoorDash SMS opts them out of all DoorDash SMS (including Drive).
How do customers opt back in?
Web:
- Log in to DoorDash.com
- Go to Account Settings
- Enable “Receive order status updates via text”
App:
- Go to Account Settings > Notifications > Order Updates
- Enable SMS toggle
Can SMS be translated?
Yes. Send locale
with the customer's preferred language (en
, fr
, es
) in the API request.
SMS sent per delivery
Event | Trigger | Copy | Condition | Can enable/disable | Copy can be customized |
---|---|---|---|---|---|
Order Creation | Sent when DoorDash receives the order | "Hi {name}, your delivery from {business_name} has been confirmed. You can track the status at {tracking_link}." | — | ✅ Disabled by default | ✅ |
Dasher Confirmed | Sent when a dasher is assigned | "Hey {name}, your order from {store_name} is being delivered at {delivery_time}. (If the order does not have Cx delivery instructions and is not DSX): Your order is missing delivery instructions. Add delivery instructions and track status at {tracking_link} to ensure a safe delivery. (If the order has Cx delivery instructions and is not DSX): You can edit delivery instructions and track the status at {tracking_link}. | SMS copy will be dependent on if the order contains dropoff instructions. Dropoff instructions can be added in the order creation API request or on the delivery tracking page. | ❌ | ❌ |
Dasher Arrived at Store | Sent when dasher selects they've arrived at the store | "Your delivery driver has arrived at {business_name}." | — | ✅ Disabled by default | ✅ |
Dasher Picked Up | Sent when dasher confirms order was picked up | For hand it to me orders: "Your delivery driver has picked up your order! The order should arrive at {delivery_time}. Call or text {Dx’s masked phone number} to coordinate a handoff with your delivery driver". For contactless orders: "Your delivery driver has picked up your order! The order should arrive at {delivery_time}. Your delivery driver will drop off your order rather than hand it to you. Call or text {Dx’s masked phone number} to coordinate a safe location for dropoff." | — | ✅ | ✅ |
Dasher Picked Up (Bad Address) | Sent once dasher confirms order is picked up combined with conditional logic | For hand it to me orders: "Your delivery driver has picked up your order! The order should arrive at {delivery_time}. We noticed that your address may be difficult to find. Call or text {Dx’s masked phone number} to coordinate a handoff with your delivery driver." For contactless orders: "Your delivery driver has picked up your order! The order should arrive at {delivery_time}. Your delivery driver will drop off your order rather than hand it to you. We noticed that your address may be difficult to find. Call or text {Dx’s masked phone number} to coordinate a safe location for dropoff." | Used when DoorDash detects the dropoff address we collected may not be accurate. This SMS will override the standard Dasher Picked Up copy. | ✅ | ❌ |
Delivery Arriving | Sent when dasher enters geofence of customer | For hand it to me orders: “{dasher_name} is approaching with your order from {store_name}. Your delivery driver will hand the order to you. For contactless orders: “{dasher_name} is approaching with your order from {store_name}. Your delivery driver will leave the order at a safe location." | — | ✅ | ✅ |
Dasher Lost | Triggered by conditional logic | “Your delivery driver, {dasher_name} is nearby but is having a hard time finding your address. Try calling or texting them at {dasher_phone_number}.” | — | ❌ | ❌ |
Dasher Dropped Off | "Your delivery driver, {dasher_name}, has arrived but is having trouble finding you. We've asked them to wait {wait_time_minutes} minutes, then they'll leave your order somewhere safe. You can reach them at {dasher_phone_number}". | For hand it to me orders: Your delivery driver, {dasher_name}, has confirmed that the order was handed to you. Please reach out to {dasher_name} at [dasher_phone_number] if you haven't received it. For contactless orders: "Your delivery driver, {dasher}, has left your order in a safe location. Tap the link below for a photo of the location: {tracking_link}" | — | ✅ Copy editable | |
Customer Unavailable | Sent if dasher selects the customer is unresponsive | "Your delivery driver, {dasher_name}, has arrived but is having trouble finding you. We've asked them to wait {wait_time_minutes} minutes, then they'll leave your order somewhere safe. You can reach them at {dasher_phone_number}". | Specific to hand it to me orders. This SMS will not trigger if order requests returns: V1 API: allow_unattended_delivery: false V2 API: action_if_undeliverable: “return_to_pickup” | ✅ | ❌ |
PIN Code Required | Sent when a dasher picks up the order | Your delivery driver will ask for a PIN code to verify delivery. Please provide PIN code:{pin_code}” | Specific to orders requesting pin code proof of delivery | ❌ | ✅ |
Delivery Complete | Sent 60 seconds after delivery is completed by Dasher | "Hi {name}! Your order from {business_name} was delivered." | — | ✅ | ✅ |
Delivery Canceled | Sent if order is canceled via API or support | "Hi {name}, your delivery from {store_name} has been canceled. Please reach out to {store_name} directly for more information." | — | ✅ | ✅ |
Post Order Survey | Sent after delivery is completed | “Thanks for ordering from {business_name}. Please take a moment to tell us about your experience: {tracking_link}” | Customer must be opted in to post-order surveys | ✅ | ✅ |
SMS Variations by Line of Business
This table outlines the SMS events that are LOB specific. If an SMS event is not listed, the order follows the default messaging above.
Line of Business | Event | Copy | Condition |
---|---|---|---|
Cash On Delivery | Order Creation | "Hey {name}, your order from {store_name} is being delivered at {delivery_time}. You can track the status at {tracking_link} . Please have {cash_value} in cash to hand to your Dasher, plus any tips. Your Dasher cannot accept any other form of payment. If you are unable to pay in cash, please cancel this order by calling the store immediately." | — |
Dasher Confirmed | — | Not sent for COD orders | |
Delivery Arriving | “{dasher_name} is approaching with your order from {store_name}. Please have {cash_value} in cash to hand to your delivery driver, plus any tips." | — | |
Delivery Complete | "Hi {recipient_first_name}! Your order from {store_name} was delivered. Please confirm you received your order at {tracking_link}" | — | |
Delivery Abandoned | "Hi {recipient_first_name}! Your delivery driver was unable to deliver your order from {store_name}. Get help or confirm that you received your order at {tracking_link}" | — | |
Customer Unavailable | “Your Dasher, {dasher_name} has arrived but is having trouble finding you. We've asked them to wait {wait_time_minutes} minutes, then your Dasher will have to abandon your order. You can reach them at {dasher_phone_number}." | — | |
DSX (Dasher Shop) | Dasher Adds New Item | Hi {name}, {dasher_name} has added {item_name} to their shopping list. Let them know if you'd like to make any changes.” | DSX only |
Parcel | Delivery Arriving | “{dasher_name} is approaching with your order from {store_name}.” | — |
Dasher Lost | — | Not sent for batched parcel orders | |
Age Restricted Items | Delivery Arriving | “{dasher_name} is approaching with your order from {store_name}. Please be ready to meet your delivery driver. They'll need to scan the recipient's ID to verify age." | Sent if the delivery states it has age restricted items |