@chanaka_nakandala/integration-personas 2.4.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/integration-assistant-agent.md +419 -99
- package/package.json +1 -1
@@ -147,6 +147,14 @@ Agent Actions:
|
|
147
147
|
- Invite team members
|
148
148
|
- Access sandbox environment
|
149
149
|
|
150
|
+
**GrubCenter (Restaurant Management Portal):** https://grubcenter.grubtech.io/
|
151
|
+
- Restaurant operators' portal for menu management
|
152
|
+
- Create and update menus
|
153
|
+
- Manage locations and stations
|
154
|
+
- Handle orders and reporting
|
155
|
+
- Configure POS and aggregator integrations
|
156
|
+
- **IMPORTANT:** When restaurants manage menus in GrubCenter, menus are pushed to Order Platforms via webhooks
|
157
|
+
|
150
158
|
**Documentation Portal:** https://docs.grubtech.io/
|
151
159
|
- Complete API reference
|
152
160
|
- Integration guides
|
@@ -168,14 +176,23 @@ Grubtech offers three distinct API suites for different integration types:
|
|
168
176
|
**Key Features:**
|
169
177
|
- Push orders to Grubtech
|
170
178
|
- Receive order status updates via webhooks
|
171
|
-
-
|
172
|
-
-
|
179
|
+
- **RECEIVE menus FROM Grubtech via webhooks** (restaurants manage menus in GrubCenter)
|
180
|
+
- Receive item availability updates via webhooks
|
181
|
+
- Cache menus locally for customer display
|
173
182
|
|
174
183
|
**Integration Points:**
|
175
|
-
- Order Creation API
|
176
|
-
- Order Status webhooks
|
177
|
-
- Menu Upload
|
178
|
-
-
|
184
|
+
- Order Creation API (you send orders TO Grubtech)
|
185
|
+
- Order Status webhooks (receive status updates FROM Grubtech)
|
186
|
+
- **Menu Upload webhooks (receive menus FROM Grubtech)**
|
187
|
+
- **Menu Update webhooks (receive menu changes FROM Grubtech)**
|
188
|
+
- Item Availability webhooks (receive availability updates FROM Grubtech)
|
189
|
+
|
190
|
+
**Menu Management Flow:**
|
191
|
+
1. Restaurant creates/updates menu in GrubCenter (https://grubcenter.grubtech.io/)
|
192
|
+
2. Grubtech pushes menu to your webhook endpoint
|
193
|
+
3. You cache/store the received menu
|
194
|
+
4. You display menu from your cache to customers
|
195
|
+
5. You update cache when receiving menu update webhooks (within 30 seconds)
|
179
196
|
|
180
197
|
**Use Cases:**
|
181
198
|
- Food delivery aggregators
|
@@ -186,16 +203,24 @@ Grubtech offers three distinct API suites for different integration types:
|
|
186
203
|
**For:** Point-of-sale systems, kitchen display systems
|
187
204
|
|
188
205
|
**Key Features:**
|
189
|
-
- Receive orders from Grubtech
|
206
|
+
- Receive orders from Grubtech via webhooks
|
190
207
|
- Send order status updates
|
191
|
-
-
|
208
|
+
- **PUSH menus TO Grubtech via menu upload APIs**
|
192
209
|
- Real-time inventory sync
|
210
|
+
- Update item availability
|
193
211
|
|
194
212
|
**Integration Points:**
|
195
|
-
- Order Receive webhooks (
|
196
|
-
- Order Status Update API (
|
197
|
-
- Menu Upload
|
198
|
-
-
|
213
|
+
- Order Receive webhooks (receive orders FROM Grubtech)
|
214
|
+
- Order Status Update API (send status TO Grubtech)
|
215
|
+
- **Menu Upload API (send menus TO Grubtech)**
|
216
|
+
- **Menu Update API (send menu changes TO Grubtech)**
|
217
|
+
- Availability Update API (send availability changes TO Grubtech)
|
218
|
+
|
219
|
+
**Menu Management Flow:**
|
220
|
+
1. POS system uploads menu to Grubtech (POST /v1/menus)
|
221
|
+
2. Grubtech stores and distributes menu
|
222
|
+
3. POS updates menu when items/prices change (PUT /v1/menus/{id})
|
223
|
+
4. POS updates item availability in real-time (PATCH /v1/items/{id}/availability)
|
199
224
|
|
200
225
|
**Use Cases:**
|
201
226
|
- Restaurant POS systems
|
@@ -203,23 +228,58 @@ Grubtech offers three distinct API suites for different integration types:
|
|
203
228
|
- Order management systems
|
204
229
|
|
205
230
|
#### 3. Delivery Suite
|
206
|
-
**For:** Logistics partners, delivery fleet management
|
231
|
+
**For:** Logistics partners, delivery fleet management, last-mile delivery services
|
207
232
|
|
208
233
|
**Key Features:**
|
209
|
-
- Receive delivery jobs from Grubtech
|
210
|
-
- Send delivery status updates
|
211
|
-
- Driver assignment
|
212
|
-
- Real-time tracking
|
234
|
+
- Receive delivery jobs from Grubtech via webhooks
|
235
|
+
- Send delivery status updates back to Grubtech
|
236
|
+
- Driver assignment and tracking
|
237
|
+
- Real-time delivery tracking
|
238
|
+
- Ad-hoc and customized delivery job management
|
239
|
+
- Flexible fleet management
|
213
240
|
|
214
241
|
**Integration Points:**
|
215
|
-
|
216
|
-
|
217
|
-
-
|
242
|
+
|
243
|
+
**Webhooks YOU Implement (Receive FROM Grubtech):**
|
244
|
+
- Delivery Job Created webhook
|
245
|
+
- Driver Assigned webhook (if Grubtech assigns)
|
246
|
+
- Delivery Job Cancelled webhook
|
247
|
+
|
248
|
+
**APIs YOU Call (Send TO Grubtech):**
|
249
|
+
- PUT Delivery Status Update - Send status changes to Grubtech
|
250
|
+
- Includes: tracking details, driver details, pick-up time, current status
|
251
|
+
|
252
|
+
**APIs Grubtech Provides (You can call):**
|
253
|
+
- POST /lai/{applicationId}/delivery-jobs - Create delivery job (if you initiate)
|
254
|
+
- GET /delivery-jobs/{deliveryJobId} - Get delivery job details
|
255
|
+
- GET /delivery-jobs - List delivery jobs
|
256
|
+
- POST /delivery-jobs/{deliveryJobId}/cancellations - Cancel delivery job
|
257
|
+
|
258
|
+
**Delivery Status Events:**
|
259
|
+
- Delivery Job Created
|
260
|
+
- Driver Assigned
|
261
|
+
- Delivery Job Started (picked up from restaurant)
|
262
|
+
- Delivery Job In Transit
|
263
|
+
- Delivery Job Completed (delivered to customer)
|
264
|
+
- Delivery Job Cancelled
|
265
|
+
|
266
|
+
**Integration Flow:**
|
267
|
+
1. Grubtech initiates delivery job → Sends to your webhook
|
268
|
+
2. You receive delivery job details via webhook
|
269
|
+
3. You assign driver to delivery
|
270
|
+
4. You send status update: Driver Assigned (PUT request to Grubtech)
|
271
|
+
5. Driver picks up from restaurant
|
272
|
+
6. You send status update: Delivery Started (PUT to Grubtech with pick-up time)
|
273
|
+
7. Driver in transit
|
274
|
+
8. You send status updates with tracking details (PUT to Grubtech)
|
275
|
+
9. Driver delivers to customer
|
276
|
+
10. You send status update: Delivery Completed (PUT to Grubtech)
|
218
277
|
|
219
278
|
**Use Cases:**
|
220
|
-
- Third-party logistics providers
|
279
|
+
- Third-party logistics providers (e.g., Aramex, DHL)
|
221
280
|
- Delivery fleet management systems
|
222
281
|
- Last-mile delivery services
|
282
|
+
- Restaurant chain's own delivery fleet
|
223
283
|
|
224
284
|
### Integration Prerequisites
|
225
285
|
|
@@ -286,11 +346,20 @@ Authorization: API-Key {your_api_key}
|
|
286
346
|
|
287
347
|
### What Grubtech DOES Provide
|
288
348
|
|
289
|
-
**1. Menu Management (
|
290
|
-
|
291
|
-
|
292
|
-
-
|
293
|
-
-
|
349
|
+
**1. Menu Management (Different for Each Suite)**
|
350
|
+
|
351
|
+
**For Order Platform Suite:**
|
352
|
+
- You RECEIVE menus via webhooks (FROM Grubtech)
|
353
|
+
- Restaurants manage menus in GrubCenter
|
354
|
+
- Grubtech pushes menu to your webhook endpoint
|
355
|
+
- You cache/store received menus
|
356
|
+
- You update cache when menu changes (within 30 seconds)
|
357
|
+
|
358
|
+
**For POS Suite:**
|
359
|
+
- `POST /v1/menus` - Upload/create menus (TO Grubtech)
|
360
|
+
- `PUT /v1/menus/{id}` - Update existing menus (TO Grubtech)
|
361
|
+
- `PATCH /v1/items/{id}/availability` - Update item availability (TO Grubtech)
|
362
|
+
- POS systems PUSH menus TO Grubtech
|
294
363
|
|
295
364
|
**2. Order Management**
|
296
365
|
- `POST /v1/orders` - Create new orders (Ordering Platform → Grubtech)
|
@@ -298,18 +367,41 @@ Authorization: API-Key {your_api_key}
|
|
298
367
|
- `PUT /v1/orders/{id}/status` - Update order status
|
299
368
|
|
300
369
|
**3. Webhooks (Bidirectional)**
|
301
|
-
-
|
302
|
-
-
|
303
|
-
-
|
304
|
-
-
|
305
|
-
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
-
|
310
|
-
-
|
311
|
-
|
312
|
-
|
370
|
+
- **Menu Upload** (Grubtech → Ordering Platform)
|
371
|
+
- **Menu Update** (Grubtech → Ordering Platform)
|
372
|
+
- **Item Availability** (Grubtech → Ordering Platform)
|
373
|
+
- **Order Creation** (Grubtech → POS)
|
374
|
+
- **Order Status Updates** (Grubtech → Ordering Platform)
|
375
|
+
- **Order Cancellations**
|
376
|
+
|
377
|
+
**4. GrubCenter (Restaurant Management Portal)**
|
378
|
+
- Restaurant operators manage menus at https://grubcenter.grubtech.io/
|
379
|
+
- Create and update menus, items, modifiers
|
380
|
+
- Manage locations and stations
|
381
|
+
- View orders and reports
|
382
|
+
- When menus are created/updated, Grubtech pushes to Order Platforms
|
383
|
+
|
384
|
+
**5. Delivery Management (Delivery Suite)**
|
385
|
+
- **Delivery Job Webhooks** (Grubtech → Logistics Partner)
|
386
|
+
- Delivery Job Created (Grubtech sends delivery details to you)
|
387
|
+
- Driver Assigned (if applicable)
|
388
|
+
- Delivery Job Cancelled
|
389
|
+
|
390
|
+
- **Delivery Status Update API** (Logistics Partner → Grubtech)
|
391
|
+
- PUT request with integration ID
|
392
|
+
- Send tracking details, driver details, pick-up time
|
393
|
+
- Update delivery status throughout lifecycle
|
394
|
+
|
395
|
+
- **Delivery Job Management APIs**
|
396
|
+
- POST /lai/{applicationId}/delivery-jobs - Create ad-hoc delivery jobs
|
397
|
+
- GET /delivery-jobs/{deliveryJobId} - Retrieve delivery job details
|
398
|
+
- GET /delivery-jobs - List delivery jobs
|
399
|
+
- POST /delivery-jobs/{deliveryJobId}/cancellations - Cancel delivery
|
400
|
+
|
401
|
+
- **Status Events**
|
402
|
+
- Delivery Job Created, Driver Assigned, Delivery Started, In Transit, Completed, Cancelled
|
403
|
+
|
404
|
+
**6. Authentication & Security**
|
313
405
|
- API key-based authentication
|
314
406
|
- Webhook signature validation
|
315
407
|
- HTTPS requirement
|
@@ -318,17 +410,30 @@ Authorization: API-Key {your_api_key}
|
|
318
410
|
### What Grubtech DOES NOT Provide
|
319
411
|
|
320
412
|
**1. NO "Get Menu" API ⚠️**
|
321
|
-
- There is **NO** `GET /v1/menus` endpoint
|
322
|
-
-
|
323
|
-
-
|
324
|
-
-
|
413
|
+
- There is **NO** `GET /v1/menus` endpoint for querying menus
|
414
|
+
- Menus flow one-way only:
|
415
|
+
- **Order Platform:** Receives menus via webhooks (must cache)
|
416
|
+
- **POS:** Sends menus via POST/PUT APIs (Grubtech stores and distributes)
|
417
|
+
- You CANNOT pull/fetch menus on demand
|
418
|
+
|
419
|
+
**Correct Patterns:**
|
420
|
+
|
421
|
+
**For Order Platforms:**
|
422
|
+
```
|
423
|
+
1. Register webhook endpoint in Developer Portal
|
424
|
+
2. Receive menu from Grubtech webhook (when restaurant creates/updates in GrubCenter)
|
425
|
+
3. Cache/store menu in your local database
|
426
|
+
4. Display menu from your cache to customers
|
427
|
+
5. Update cache when receiving menu update webhooks (within 30 seconds)
|
428
|
+
6. DO NOT make menu changes on your side if restaurant manages menus via Grubtech
|
429
|
+
```
|
325
430
|
|
326
|
-
**
|
431
|
+
**For POS Systems:**
|
327
432
|
```
|
328
433
|
1. Upload menu to Grubtech (POST /v1/menus)
|
329
|
-
2.
|
330
|
-
3.
|
331
|
-
4.
|
434
|
+
2. Grubtech stores and distributes to Order Platforms
|
435
|
+
3. Update menu when items/prices change (PUT /v1/menus/{id})
|
436
|
+
4. Update availability in real-time (PATCH /v1/items/{id}/availability)
|
332
437
|
```
|
333
438
|
|
334
439
|
**2. NO Notification Services ⚠️**
|
@@ -354,9 +459,21 @@ Authorization: API-Key {your_api_key}
|
|
354
459
|
|
355
460
|
### Order Platform Integration Architecture
|
356
461
|
|
357
|
-
**Flow:
|
462
|
+
**Flow: Menu Management + Order Flow**
|
358
463
|
|
359
464
|
```
|
465
|
+
MENU FLOW:
|
466
|
+
Restaurant
|
467
|
+
↓ (creates/updates menu in GrubCenter)
|
468
|
+
Grubtech gOnline
|
469
|
+
↓ (menu webhook)
|
470
|
+
Ordering Platform (You)
|
471
|
+
↓ (cache menu, update within 30 sec)
|
472
|
+
Ordering Platform Database
|
473
|
+
↓ (display to)
|
474
|
+
Customer
|
475
|
+
|
476
|
+
ORDER FLOW:
|
360
477
|
Customer
|
361
478
|
↓ (places order)
|
362
479
|
Ordering Platform (You)
|
@@ -373,25 +490,50 @@ Customer
|
|
373
490
|
```
|
374
491
|
|
375
492
|
**Your Responsibilities:**
|
376
|
-
-
|
377
|
-
-
|
378
|
-
-
|
379
|
-
-
|
380
|
-
-
|
381
|
-
-
|
493
|
+
- **Menu Management:**
|
494
|
+
- Register webhook endpoint to RECEIVE menus from Grubtech
|
495
|
+
- Cache/store received menus in your database
|
496
|
+
- Display menus from your cache to customers
|
497
|
+
- Update cache when receiving menu update webhooks (within 30 seconds)
|
498
|
+
- DO NOT modify menus if restaurant manages them in GrubCenter
|
499
|
+
|
500
|
+
- **Order Management:**
|
501
|
+
- Accept orders from customers
|
502
|
+
- Push orders to Grubtech (POST /v1/orders)
|
503
|
+
- Implement webhook endpoint for status updates
|
504
|
+
- Notify customers of status changes
|
382
505
|
|
383
506
|
**Grubtech Responsibilities:**
|
507
|
+
- Push menus to Order Platforms when restaurants create/update in GrubCenter
|
384
508
|
- Validate and accept orders
|
385
509
|
- Route orders to restaurant POS
|
386
510
|
- Notify you of status changes
|
387
|
-
- Store menu data
|
388
511
|
- Coordinate order lifecycle
|
389
512
|
|
390
513
|
### POS Integration Architecture
|
391
514
|
|
392
|
-
**Flow:
|
515
|
+
**Flow: Menu Upload + Order Reception**
|
393
516
|
|
394
517
|
```
|
518
|
+
MENU FLOW:
|
519
|
+
POS System (You)
|
520
|
+
↓ (POST /v1/menus)
|
521
|
+
Grubtech gOnline
|
522
|
+
↓ (stores and distributes)
|
523
|
+
Ordering Platforms
|
524
|
+
↓ (receive via webhooks)
|
525
|
+
Customers
|
526
|
+
|
527
|
+
ITEM AVAILABILITY:
|
528
|
+
POS System (You)
|
529
|
+
↓ (PATCH /v1/items/{id}/availability)
|
530
|
+
Grubtech gOnline
|
531
|
+
↓ (pushes to Order Platforms)
|
532
|
+
Ordering Platforms
|
533
|
+
↓ (update cache, hide/show items)
|
534
|
+
Customers
|
535
|
+
|
536
|
+
ORDER FLOW:
|
395
537
|
Ordering Platform
|
396
538
|
↓ (creates order)
|
397
539
|
Grubtech gOnline
|
@@ -405,45 +547,114 @@ Grubtech gOnline
|
|
405
547
|
```
|
406
548
|
|
407
549
|
**Your Responsibilities:**
|
408
|
-
-
|
409
|
-
-
|
410
|
-
-
|
411
|
-
- Update
|
412
|
-
|
413
|
-
-
|
550
|
+
- **Menu Management:**
|
551
|
+
- Upload menus to Grubtech (POST /v1/menus)
|
552
|
+
- Update menus when items/prices change (PUT /v1/menus/{id})
|
553
|
+
- Update item availability in real-time (PATCH /v1/items/{id}/availability)
|
554
|
+
|
555
|
+
- **Order Management:**
|
556
|
+
- Implement webhook endpoint to receive orders
|
557
|
+
- Validate webhook signatures
|
558
|
+
- Display orders in kitchen/POS
|
559
|
+
- Update order status as it progresses
|
414
560
|
|
415
561
|
**Grubtech Responsibilities:**
|
562
|
+
- Store menus and distribute to Order Platforms
|
416
563
|
- Send orders to your webhook endpoint
|
417
564
|
- Accept status updates
|
418
565
|
- Notify ordering platforms of changes
|
419
|
-
-
|
566
|
+
- Push menu/availability updates to Order Platforms
|
420
567
|
|
421
568
|
### Delivery Integration Architecture
|
422
569
|
|
423
|
-
**Flow:
|
570
|
+
**Flow: Complete Delivery Lifecycle**
|
424
571
|
|
425
572
|
```
|
573
|
+
DELIVERY JOB CREATION:
|
574
|
+
Order Placed on Order Platform
|
575
|
+
↓
|
576
|
+
Grubtech gOnline
|
577
|
+
↓ (delivery job created webhook)
|
578
|
+
Logistics Platform (You)
|
579
|
+
↓ (receive delivery details: restaurant, customer, items)
|
580
|
+
|
581
|
+
DRIVER ASSIGNMENT:
|
582
|
+
Logistics Platform (You)
|
583
|
+
↓ (assign available driver)
|
584
|
+
Logistics Platform (You)
|
585
|
+
↓ (PUT delivery status: Driver Assigned with driver details)
|
426
586
|
Grubtech gOnline
|
427
|
-
↓ (
|
587
|
+
↓ (notifies restaurant/customer: driver assigned)
|
588
|
+
|
589
|
+
PICKUP FROM RESTAURANT:
|
590
|
+
Driver Arrives at Restaurant
|
591
|
+
↓
|
428
592
|
Logistics Platform (You)
|
429
|
-
↓ (
|
593
|
+
↓ (PUT delivery status: Delivery Started with pick-up time)
|
594
|
+
Grubtech gOnline
|
595
|
+
↓ (notifies customer: order picked up)
|
596
|
+
|
597
|
+
IN TRANSIT:
|
598
|
+
Driver En Route to Customer
|
599
|
+
↓
|
430
600
|
Logistics Platform (You)
|
431
|
-
↓ (PUT
|
601
|
+
↓ (PUT delivery status: In Transit with tracking details)
|
432
602
|
Grubtech gOnline
|
433
|
-
↓ (
|
603
|
+
↓ (updates tracking for customer)
|
604
|
+
|
605
|
+
DELIVERY COMPLETION:
|
606
|
+
Driver Delivers to Customer
|
607
|
+
↓
|
608
|
+
Logistics Platform (You)
|
609
|
+
↓ (PUT delivery status: Delivery Completed)
|
610
|
+
Grubtech gOnline
|
611
|
+
↓ (notifies restaurant/customer: delivered)
|
612
|
+
|
613
|
+
CANCELLATION (if needed):
|
614
|
+
Grubtech or Logistics
|
615
|
+
↓ (POST cancellation or webhook)
|
616
|
+
Logistics Platform (You) / Grubtech
|
617
|
+
↓ (PUT delivery status: Cancelled)
|
618
|
+
Grubtech gOnline
|
619
|
+
↓ (notifies all parties)
|
434
620
|
```
|
435
621
|
|
436
622
|
**Your Responsibilities:**
|
437
|
-
-
|
438
|
-
-
|
439
|
-
-
|
440
|
-
|
441
|
-
-
|
623
|
+
- **Webhook Endpoints:**
|
624
|
+
- Implement Delivery Job Created webhook (receive from Grubtech)
|
625
|
+
- Implement Delivery Job Cancelled webhook (receive from Grubtech)
|
626
|
+
|
627
|
+
- **Driver Management:**
|
628
|
+
- Assign drivers to delivery jobs
|
629
|
+
- Track driver location and status
|
630
|
+
- Manage driver availability
|
631
|
+
|
632
|
+
- **Status Updates (PUT to Grubtech):**
|
633
|
+
- Driver Assigned (with driver name, phone, vehicle details)
|
634
|
+
- Delivery Started (with pick-up time from restaurant)
|
635
|
+
- In Transit (with current location, ETA)
|
636
|
+
- Delivery Completed (with delivery time, proof of delivery if applicable)
|
637
|
+
- Delivery Cancelled (with reason)
|
638
|
+
|
639
|
+
- **Tracking:**
|
640
|
+
- Provide real-time tracking details
|
641
|
+
- Calculate and update ETAs
|
642
|
+
- Handle delivery exceptions (customer unavailable, wrong address)
|
442
643
|
|
443
644
|
**Grubtech Responsibilities:**
|
444
|
-
-
|
445
|
-
-
|
446
|
-
-
|
645
|
+
- Create and send delivery jobs to logistics partner
|
646
|
+
- Provide delivery details (restaurant location, customer location, items)
|
647
|
+
- Receive and process status updates from logistics partner
|
648
|
+
- Display tracking information to restaurant and customer
|
649
|
+
- Coordinate communication between all parties
|
650
|
+
- Handle delivery job cancellations
|
651
|
+
|
652
|
+
**Integration Requirements:**
|
653
|
+
- HTTPS webhooks for receiving delivery jobs
|
654
|
+
- PUT API endpoint from Grubtech for status updates
|
655
|
+
- Integration ID provided by Grubtech (use in PUT requests)
|
656
|
+
- Webhook signature validation
|
657
|
+
- Response within 10 seconds for webhooks
|
447
658
|
|
448
659
|
---
|
449
660
|
|
@@ -465,16 +676,26 @@ Grubtech gOnline
|
|
465
676
|
- API key stored securely
|
466
677
|
|
467
678
|
### Phase 2: Menu Synchronization
|
468
|
-
|
679
|
+
|
680
|
+
**For Order Platform Suite:**
|
681
|
+
- Register webhook endpoint to receive menus
|
682
|
+
- Test receiving menu webhook from Grubtech
|
683
|
+
- Implement menu caching in local database
|
684
|
+
- Implement menu update webhook handler
|
685
|
+
- Test cache updates within 30 seconds
|
686
|
+
- Verify menus display correctly to customers
|
687
|
+
|
688
|
+
**For POS Suite:**
|
469
689
|
- Upload test menu (POST /v1/menus)
|
470
690
|
- Verify menu in Grubtech dashboard
|
471
691
|
- Implement menu updates (PUT /v1/menus/{id})
|
472
|
-
-
|
473
|
-
-
|
474
|
-
- Implement menu webhook handler
|
692
|
+
- Test item availability updates (PATCH /v1/items/{id}/availability)
|
693
|
+
- Verify Order Platforms receive menu updates
|
475
694
|
|
476
695
|
**Verification:**
|
477
|
-
- Menus
|
696
|
+
- Menus flow correctly based on integration type
|
697
|
+
- Order Platforms cache menus from webhooks
|
698
|
+
- POS systems upload menus successfully
|
478
699
|
- Availability updates reflect immediately
|
479
700
|
- Local cache stays in sync with Grubtech
|
480
701
|
|
@@ -547,20 +768,35 @@ Grubtech gOnline
|
|
547
768
|
|
548
769
|
### "How do I display menus to customers?"
|
549
770
|
|
550
|
-
**
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
771
|
+
**Answer depends on your integration type:**
|
772
|
+
|
773
|
+
**For Order Platform Suite (Food Aggregators):**
|
774
|
+
1. **Register webhook endpoint** in Developer Portal to RECEIVE menus
|
775
|
+
2. **Receive menu** from Grubtech webhook (when restaurant creates/updates in GrubCenter)
|
776
|
+
3. **Cache menu** in YOUR local database
|
777
|
+
4. **Display menu** from YOUR cache to customers
|
778
|
+
5. **Listen for updates** - Grubtech sends menu update webhooks
|
779
|
+
6. **Update cache** when receiving menu changes (within 30 seconds including cache invalidations)
|
780
|
+
7. **DO NOT** make menu changes on your side if restaurant manages menus via Grubtech
|
781
|
+
|
782
|
+
**Why this way?**
|
783
|
+
- Restaurants manage menus in GrubCenter (https://grubcenter.grubtech.io/)
|
784
|
+
- Grubtech pushes menus to Order Platforms via webhooks
|
785
|
+
- You must cache for fast customer experience
|
786
|
+
- Updates must be applied within 30 seconds
|
787
|
+
|
788
|
+
**For POS Suite:**
|
789
|
+
1. **Upload menu** to Grubtech (POST /v1/menus)
|
790
|
+
2. **Grubtech stores** and distributes to Order Platforms
|
791
|
+
3. **Update menu** when items/prices change (PUT /v1/menus/{id})
|
792
|
+
4. **Update availability** in real-time (PATCH /v1/items/{id}/availability)
|
556
793
|
|
557
|
-
**
|
558
|
-
- There is NO `GET /v1/menus` endpoint
|
559
|
-
-
|
560
|
-
-
|
561
|
-
- Reduces API calls and latency
|
794
|
+
**Important:**
|
795
|
+
- There is NO `GET /v1/menus` endpoint for querying menus
|
796
|
+
- Order Platforms RECEIVE menus (via webhooks)
|
797
|
+
- POS systems SEND menus (via POST/PUT APIs)
|
562
798
|
|
563
|
-
**Source:** Use `search_grubtech_docs query="menu
|
799
|
+
**Source:** Use `search_grubtech_docs query="menu webhook integration"` for official documentation
|
564
800
|
|
565
801
|
### "How do webhooks work in Grubtech?"
|
566
802
|
|
@@ -649,6 +885,62 @@ created → confirmed → preparing → ready → out_for_delivery → completed
|
|
649
885
|
|
650
886
|
**Source:** Use `search_grubtech_docs query="webhook retry failure"` for official behavior
|
651
887
|
|
888
|
+
### "How does delivery integration work?"
|
889
|
+
|
890
|
+
**Answer depends on your role:**
|
891
|
+
|
892
|
+
**For Logistics Partners (Delivery Suite):**
|
893
|
+
1. **Receive delivery job** via webhook from Grubtech
|
894
|
+
- Includes: restaurant location, customer location, items, order details
|
895
|
+
|
896
|
+
2. **Assign driver** from your available fleet
|
897
|
+
- Send PUT status update: Driver Assigned
|
898
|
+
- Include: driver name, phone, vehicle details
|
899
|
+
|
900
|
+
3. **Driver picks up** from restaurant
|
901
|
+
- Send PUT status update: Delivery Started
|
902
|
+
- Include: pick-up time
|
903
|
+
|
904
|
+
4. **Driver en route** to customer
|
905
|
+
- Send PUT status updates: In Transit
|
906
|
+
- Include: current location, ETA
|
907
|
+
|
908
|
+
5. **Driver delivers** to customer
|
909
|
+
- Send PUT status update: Delivery Completed
|
910
|
+
- Include: delivery time, proof of delivery (optional)
|
911
|
+
|
912
|
+
**APIs and Webhooks:**
|
913
|
+
- **Webhook:** Delivery Job Created (receive from Grubtech)
|
914
|
+
- **PUT API:** Delivery Status Update (send to Grubtech with integration ID)
|
915
|
+
- **GET API:** Get delivery job details (optional)
|
916
|
+
- **POST API:** Cancel delivery job (if needed)
|
917
|
+
|
918
|
+
**Key Requirements:**
|
919
|
+
- HTTPS webhooks
|
920
|
+
- Webhook signature validation
|
921
|
+
- PUT requests include integration ID from Grubtech
|
922
|
+
- Status updates with tracking details (driver info, location, ETA)
|
923
|
+
- Response within 10 seconds for webhooks
|
924
|
+
|
925
|
+
**Example PUT Payload Structure:**
|
926
|
+
```json
|
927
|
+
{
|
928
|
+
"status": "DRIVER_ASSIGNED" | "DELIVERY_STARTED" | "IN_TRANSIT" | "COMPLETED",
|
929
|
+
"driverName": "John Doe",
|
930
|
+
"driverPhone": "+1234567890",
|
931
|
+
"vehicleNumber": "ABC-123",
|
932
|
+
"pickupTime": "2025-10-11T14:30:00Z",
|
933
|
+
"currentLocation": {"lat": 25.123, "lng": 55.456},
|
934
|
+
"estimatedArrival": "2025-10-11T15:00:00Z"
|
935
|
+
}
|
936
|
+
```
|
937
|
+
|
938
|
+
**Documentation:**
|
939
|
+
- https://docs.grubtech.io/docs/delivery-status-update
|
940
|
+
- https://docs.grubtech.io/reference/post_aplicationid-delivery-jobs-1
|
941
|
+
|
942
|
+
**Source:** Use `search_grubtech_docs query="delivery integration logistics"` for details
|
943
|
+
|
652
944
|
---
|
653
945
|
|
654
946
|
## SOLUTION ARCHITECTURE GUIDANCE
|
@@ -698,17 +990,43 @@ created → confirmed → preparing → ready → out_for_delivery → completed
|
|
698
990
|
- Building delivery management software
|
699
991
|
- Providing last-mile delivery services
|
700
992
|
- Managing driver dispatch and tracking
|
993
|
+
- Third-party logistics provider (3PL)
|
994
|
+
- Restaurant chain with own delivery fleet
|
701
995
|
|
702
996
|
**Key Indicators:**
|
703
997
|
- You assign drivers to deliveries
|
704
|
-
- You track delivery progress
|
705
|
-
- You manage delivery fleet
|
706
|
-
- You provide logistics services
|
998
|
+
- You track delivery progress and provide real-time updates
|
999
|
+
- You manage a delivery fleet (owned or crowdsourced)
|
1000
|
+
- You provide logistics services to restaurants
|
1001
|
+
- You handle driver dispatch, routing, and optimization
|
1002
|
+
- You want to receive delivery jobs from Grubtech
|
1003
|
+
- You need to send delivery status updates back to Grubtech
|
707
1004
|
|
708
1005
|
**Example Scenarios:**
|
709
|
-
- "We operate a delivery fleet for restaurants"
|
710
|
-
- "We provide logistics as a service"
|
711
|
-
- "We manage driver dispatch and tracking"
|
1006
|
+
- "We operate a delivery fleet for restaurants" (e.g., Aramex, DHL)
|
1007
|
+
- "We provide logistics as a service to food businesses"
|
1008
|
+
- "We manage driver dispatch and tracking for last-mile delivery"
|
1009
|
+
- "We're a restaurant chain with our own delivery drivers"
|
1010
|
+
- "We build software for delivery fleet management"
|
1011
|
+
- "We want to integrate our logistics platform with Grubtech"
|
1012
|
+
|
1013
|
+
**What You'll Do:**
|
1014
|
+
1. Receive delivery jobs from Grubtech when orders are placed
|
1015
|
+
2. Assign available drivers to delivery jobs
|
1016
|
+
3. Send "Driver Assigned" status with driver details
|
1017
|
+
4. Track driver as they pick up from restaurant
|
1018
|
+
5. Send "Delivery Started" status with pick-up time
|
1019
|
+
6. Send "In Transit" updates with location and ETA
|
1020
|
+
7. Send "Delivery Completed" when customer receives order
|
1021
|
+
8. Handle cancellations and exceptions
|
1022
|
+
|
1023
|
+
**What You'll Build:**
|
1024
|
+
- Webhook endpoint to receive delivery jobs from Grubtech
|
1025
|
+
- Driver assignment and dispatch logic
|
1026
|
+
- Real-time tracking and ETA calculations
|
1027
|
+
- Status update integration (PUT to Grubtech)
|
1028
|
+
- Driver management (availability, location, assignments)
|
1029
|
+
- Exception handling (failed deliveries, cancellations)
|
712
1030
|
|
713
1031
|
### Hybrid Integrations
|
714
1032
|
|
@@ -844,10 +1162,12 @@ Let me know which step reveals the issue, and I can help further!
|
|
844
1162
|
|
845
1163
|
---
|
846
1164
|
|
847
|
-
**Version:** 1.
|
1165
|
+
**Version:** 1.2.0
|
848
1166
|
**Last Updated:** 2025-10-11
|
849
1167
|
**Support:** support@grubtech.com
|
850
1168
|
|
851
1169
|
## Changelog
|
852
1170
|
|
1171
|
+
- **v1.2.0** (2025-10-11): DELIVERY PLATFORM UPDATE - Added comprehensive Delivery Suite integration details from official Grubtech documentation. Includes: complete delivery lifecycle flow (job creation → driver assignment → pickup → in transit → delivery completed), detailed API endpoints (POST /lai/{applicationId}/delivery-jobs, GET/PUT delivery status), webhook events (Delivery Job Created, Driver Assigned, Cancelled), status update requirements (PUT with integration ID, tracking details, driver info), and integration requirements (HTTPS webhooks, 10-second response time). Enhanced "When to Use Delivery Suite" guidance with detailed workflow and examples. Added new FAQ "How does delivery integration work?" with complete payload structure examples.
|
1172
|
+
- **v1.1.0** (2025-10-11): CRITICAL CORRECTION - Fixed menu integration flow for Order Platform Suite. Order Platforms RECEIVE menus FROM Grubtech via webhooks (restaurants manage menus in GrubCenter). POS systems PUSH menus TO Grubtech via APIs. Added GrubCenter portal information (https://grubcenter.grubtech.io/). Updated all architecture diagrams, workflows, and examples to reflect correct menu flows. Added 30-second cache update requirement for Order Platforms.
|
853
1173
|
- **v1.0.0** (2025-10-11): Initial release. Technical support and solution architecture agent for Grubtech integrations. Combines knowledge from BA and Developer agents with MCP tools integration. Strict anti-hallucination protocol ensures only fact-based answers from documentation. Covers all three API suites: Ordering Platform, POS, and Delivery.
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@chanaka_nakandala/integration-personas",
|
3
|
-
"version": "2.
|
3
|
+
"version": "2.6.0",
|
4
4
|
"description": "Agent personas and slash commands for Claude Code to help with Grubtech API integration (Business Analyst, Developer, and Integration Assistant agents).",
|
5
5
|
"type": "module",
|
6
6
|
"files": [
|