Virnika connects to Olo, the digital ordering platform used by many restaurant brands. Phone orders go into Olo as a basket, just like an order from your website or app, and Olo sends them on to your POS and kitchen. Your menu, prices, item availability and store status stay in sync automatically.
Olo is set up at the brand level, so most of the setup is done by your brand’s Olo admin or IT team. Your Virnika onboarding specialist connects each location for you once the Olo side is ready.
Before you start
Section titled “Before you start”- Olo Ordering API access for Virnika. Olo requires the brand to request this. Contact your Olo Customer Success Representative to request Ordering API access for Virnika.
- The Client ID and Client Secret for that access.
- Someone on your team with access to the Olo Dashboard who can set up webhooks.
- Each location you want to connect must already be set up in Olo. Virnika can’t create Olo locations for you.
Send us your Olo credentials
Section titled “Send us your Olo credentials”Send your Client ID and Client Secret to your onboarding specialist. Don’t send them by plain email; ask your specialist for a secure way to share them.
We use them to look up the restaurants your credentials can see, then pick the right Olo restaurant for each Virnika location.
Set up the webhook in Olo
Section titled “Set up the webhook in Olo”Webhooks are how Olo tells Virnika about menu changes, 86’d items, store closures and order updates. Your Olo admin sets this up in the Olo Dashboard:
- Use the Destination URL your onboarding specialist gives you.
- Subscribe to these events:
- Orders:
OrderPlaced,OrderCancelled,OrderPickedUp,OrderClosed,OrderAdjusted,BasketSubmitFailed,ScheduledOrderFired,ScheduledOrderFailed - Menu:
MenuItemAvailabilityChanged,MenuSyncComplete,VendorMenuExportComplete - Store status:
VendorAvailabilityChanged,VendorTemporarilyDisabled
- Orders:
- Send us the shared secret Olo gives you when you create the webhook. We add it to each connected location.
- Send a Test event to confirm the webhook works.
Turn on tips for each order type
Section titled “Turn on tips for each order type”If callers can add a tip, make sure tipping is turned on in Olo for every order type you offer, such as pickup, curbside and delivery. Olo turns tipping on or off separately for each one.
Choose how callers pay
Section titled “Choose how callers pay”Callers can pay over the phone or pay at pickup.
- Pay over the phone: the order is sent to Olo as prepaid. Your Olo location needs a prepaid billing method turned on, or Olo won’t accept prepaid orders. Brands that use Olo Pay can take payment through Olo Pay instead.
- Pay at pickup: the order is sent as unpaid and the customer pays in store.
Check your menu and place a test order
Section titled “Check your menu and place a test order”We go over the imported menu with you, including items, modifiers, prices and hours. Then we place a test order to make sure it reaches your POS and kitchen the way you expect. After that, you’re ready to go live.
What syncs from Olo
Section titled “What syncs from Olo”- Menu: categories, items, prices and full modifier options, including modifiers nested inside other modifiers. We sync it when you connect, whenever Olo tells us the menu changed, and every 4 hours as a backup.
- Hours: menu hours come from your Olo carryout calendar, or your business hours if there’s no carryout calendar.
- Out-of-stock items: when you 86 an item or a modifier option in Olo, Virnika stops offering it.
- Disabled items: items and options that are disabled in Olo aren’t offered.
- Store status: if Olo shows the store as offline, or someone temporarily disables it in the Olo Dashboard, Virnika tells callers ordering is paused. Orders resume when Olo shows the store as back online.
- Prices, tax and fees: before the order is placed, we ask Olo to price it. Olo works out the tax, delivery fee and any service charges, so callers get the same total Olo would charge.
How orders arrive
Section titled “How orders arrive”- Orders are sent as pickup, curbside or delivery orders, with the caller’s name and phone number. Delivery orders include the address.
- The order’s special instructions start with
PHONE ORDER, followed by** PAID **or** PAY IN STORE **. Curbside orders include the caller’s vehicle description. - Orders can be placed for as soon as possible or for a later time. Scheduled times use the store’s local time.
- Tips are added to the order.
- If Olo can’t reach your POS for a moment, we automatically try the order again up to two more times.
- If an order is canceled in Olo, Virnika marks it canceled too.
Limitations
Section titled “Limitations”- Orders can’t be edited or canceled from Virnika once they’re in Olo. Make changes in Olo or on your POS.
- Virnika discounts can’t be applied to Olo orders.
- Olo allows up to 36 characters for each of the guest’s first and last names. Longer names are shortened.
- Olo doesn’t share prep times. Set those in your Virnika location settings.
Troubleshooting
Section titled “Troubleshooting”Orders with a tip are failing
Tipping is probably turned off in Olo for that order type. Turn on tipping for pickup, curbside and delivery, whichever you offer, then try again.
Paid phone orders are being rejected
Your Olo location needs a prepaid billing method turned on to accept orders paid over the phone. Ask your Olo representative to check, or contact help@virnika.ai.
86'd items are still being offered
Check that the webhook is set up in the Olo Dashboard, that it’s subscribed to MenuItemAvailabilityChanged, and that we have the shared secret for your location. If the webhook isn’t working, changes still sync every 4 hours.
Virnika says ordering is paused
Olo has marked the store as offline or temporarily disabled. Check the store’s status in the Olo Dashboard. Virnika starts taking orders again when Olo shows the store as back online.
Need help?
Section titled “Need help?”- Virnika support: help@virnika.ai
- Olo support: for Ordering API access, webhooks, tipping and billing settings, contact your Olo Customer Success Representative.