@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.
@@ -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
- - Menu synchronization
172
- - Item availability updates
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 API
178
- - Availability Update API
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
- - Menu management
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 (from Grubtech)
196
- - Order Status Update API (to Grubtech)
197
- - Menu Upload/Update APIs
198
- - Availability management
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 notifications
212
- - Real-time tracking updates
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
- - Delivery Job webhooks
216
- - Delivery Status Update API
217
- - Driver Assignment API
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 (Push-Based)**
290
- - `POST /v1/menus` - Upload/create menus
291
- - `PUT /v1/menus/{id}` - Update existing menus
292
- - `PATCH /v1/items/{id}/availability` - Update item availability
293
- - **IMPORTANT:** Menu sync is PUSH-based only (you upload TO Grubtech)
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
- - Order status updates
302
- - Order creation notifications (for POS integrations)
303
- - Order cancellations
304
- - Menu updates (if Grubtech modifies data)
305
- - Item availability changes
306
-
307
- **4. Delivery Management**
308
- - Delivery job assignment
309
- - Delivery status tracking
310
- - Driver assignment notifications
311
-
312
- **5. Authentication & Security**
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
- - Menu sync is **PUSH-only** (you upload to Grubtech)
323
- - Cache menus in your local database after uploading
324
- - Use webhooks to receive menu updates FROM Grubtech
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
- **Correct Pattern:**
431
+ **For POS Systems:**
327
432
  ```
328
433
  1. Upload menu to Grubtech (POST /v1/menus)
329
- 2. Cache menu in your local database
330
- 3. Display menu from your cache to customers
331
- 4. Listen to webhooks for menu updates from Grubtech
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: Customer Order Grubtech → Restaurant/POS**
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
- - Accept orders from customers
377
- - Push orders to Grubtech (POST /v1/orders)
378
- - Implement webhook endpoint for status updates
379
- - Notify customers of status changes
380
- - Handle menu display from cached data
381
- - Upload menus to Grubtech (POST /v1/menus)
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: Grubtech POS Grubtech**
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
- - Implement webhook endpoint to receive orders
409
- - Validate webhook signatures
410
- - Display orders in kitchen/POS
411
- - Update order status as it progresses
412
- - Upload menus to Grubtech
413
- - Update item availability in real-time
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
- - Store and distribute menu data
566
+ - Push menu/availability updates to Order Platforms
420
567
 
421
568
  ### Delivery Integration Architecture
422
569
 
423
- **Flow: Grubtech Logistics Partner → Grubtech**
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
- ↓ (delivery job webhook)
587
+ ↓ (notifies restaurant/customer: driver assigned)
588
+
589
+ PICKUP FROM RESTAURANT:
590
+ Driver Arrives at Restaurant
591
+
428
592
  Logistics Platform (You)
429
- ↓ (assign driver)
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 /deliveries/{id}/status)
601
+ ↓ (PUT delivery status: In Transit with tracking details)
432
602
  Grubtech gOnline
433
- ↓ (notifies restaurant/customer)
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
- - Receive delivery job webhooks
438
- - Assign drivers to deliveries
439
- - Track delivery progress
440
- - Send status updates to Grubtech
441
- - Provide estimated arrival times
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
- - Send delivery jobs
445
- - Coordinate with restaurant and customer
446
- - Display tracking information
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
- **Tasks:**
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
- - Cache menus in local database
473
- - Test item availability updates
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 visible in Grubtech system
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
- **Correct Approach:**
551
- 1. Upload menu to Grubtech (POST /v1/menus)
552
- 2. Store menu in YOUR local database (cache)
553
- 3. Display menu from YOUR cache to customers
554
- 4. Listen to webhooks for menu updates from Grubtech
555
- 5. Update your cache when changes occur
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
- **Why?**
558
- - There is NO `GET /v1/menus` endpoint
559
- - Menu sync is push-based only
560
- - Caching ensures fast customer experience
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 upload sync"` for official documentation
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.0.0
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.4.0",
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": [