TerraGo API

WhatsApp Flow Menus

Configuration for the menu options shown to parents in the WhatsApp bot flow (System Admin only). Items are addressed by integer id, not UUID.

6 endpoint(s)
GET List Menus {{url}}/whatsapp-flow-menus

List every WhatsApp flow menu item, ordered by sort_order — the admin dashboard's System Settings → WhatsApp Flow Menu tab.

Notes

  • Requires a bearer token (auth:api).
Auth
Bearer token
Sample Response (200 OK)
{
    "status": 200,
    "data": [
        {
            "id": 1,
            "name": "main_menu",
            "description": "Top-level WhatsApp flow menu shown to parents.",
            "enabled": true,
            "sort_order": 0,
            "created_at": "2026-05-19T00:00:00.000000Z",
            "updated_at": "2026-05-19T00:00:00.000000Z"
        }
    ],
    "message": "success"
}
POST Create Menu {{url}}/whatsapp-flow-menus/add

Create a new WhatsApp flow menu item.

Request Body

  • name (string, required, unique).
  • description (string, required).
  • enabled (boolean, optional, default true).
  • sort_order (integer, optional, default 0).

Notes

  • Requires a bearer token (auth:api).
Auth
Bearer token
Request Body
{
    "name": "book_a_ride",
    "description": "Lets a parent book an ad-hoc ride.",
    "enabled": true,
    "sort_order": 1
}
Sample Response (200 OK)
{
    "status": 200,
    "data": {
        "id": 2,
        "name": "book_a_ride",
        "description": "Top-level WhatsApp flow menu shown to parents.",
        "enabled": true,
        "sort_order": 0,
        "created_at": "2026-05-19T00:00:00.000000Z",
        "updated_at": "2026-05-19T00:00:00.000000Z"
    },
    "message": "Menu created successfully"
}
PUT Update Menu {{url}}/whatsapp-flow-menus/update/1

Update a WhatsApp flow menu item.

Request Body (all optional)

  • name (string, unique).
  • description (string).
  • enabled (boolean).
  • sort_order (integer).

Notes

  • Requires a bearer token (auth:api).
Auth
Bearer token
Request Body
{
    "description": "Updated description."
}
Sample Response (200 OK)
{
    "status": 200,
    "data": {
        "id": 1,
        "name": "main_menu",
        "description": "Top-level WhatsApp flow menu shown to parents.",
        "enabled": true,
        "sort_order": 0,
        "created_at": "2026-05-19T00:00:00.000000Z",
        "updated_at": "2026-05-19T00:00:00.000000Z"
    },
    "message": "Menu updated successfully"
}
DELETE Delete Menu {{url}}/whatsapp-flow-menus/delete/1

Delete a WhatsApp flow menu item.

Notes

  • Requires a bearer token (auth:api).
Auth
Bearer token
Sample Response (200 OK)
{
    "status": 200,
    "data": [],
    "message": "Menu deleted successfully"
}
POST Reorder Menus {{url}}/whatsapp-flow-menus/reorder

Bulk-update the sort_order of many menu items at once (drag-to-reorder in the UI).

Request Body

  • menus (array, required), each with:
  • id (integer, required, must exist).
  • sort_order (integer, required).

Notes

  • Requires a bearer token (auth:api).
Auth
Bearer token
Request Body
{
    "menus": [
        {
            "id": 1,
            "sort_order": 0
        },
        {
            "id": 2,
            "sort_order": 1
        }
    ]
}
Sample Response (200 OK)
{
    "status": 200,
    "data": [
        {
            "id": 1,
            "name": "main_menu",
            "description": "Top-level WhatsApp flow menu shown to parents.",
            "enabled": true,
            "sort_order": 0,
            "created_at": "2026-05-19T00:00:00.000000Z",
            "updated_at": "2026-05-19T00:00:00.000000Z"
        }
    ],
    "message": "Order updated successfully"
}
PUT Toggle Menu {{url}}/whatsapp-flow-menus/toggle/1

Enable or disable a menu item without touching its other fields.

Request Body

  • enabled (boolean, required).

Notes

  • Requires a bearer token (auth:api).
Auth
Bearer token
Request Body
{
    "enabled": false
}
Sample Response (200 OK)
{
    "status": 200,
    "data": {
        "id": 1,
        "name": "main_menu",
        "description": "Top-level WhatsApp flow menu shown to parents.",
        "enabled": false,
        "sort_order": 0,
        "created_at": "2026-05-19T00:00:00.000000Z",
        "updated_at": "2026-05-19T00:00:00.000000Z"
    },
    "message": "Menu status updated successfully"
}