{
    "variable": [
        {
            "id": "baseUrl",
            "key": "baseUrl",
            "type": "string",
            "name": "string",
            "value": "https:\/\/api.plixa.app"
        }
    ],
    "info": {
        "name": "Plixa API",
        "_postman_id": "7eacddcb-ae81-4945-b1fe-0c3807903ac7",
        "description": "REST API for the Plixa SaaS \u2014 WhatsApp customer service for small and medium businesses.",
        "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"
    },
    "item": [
        {
            "name": "AI configuration",
            "description": "\nOn-demand quick-reply suggestions inside the inbox. Calls the AI\nprovider once and returns 3 short, distinct candidates an operator\ncan click into the composer, edit and send. Plan-gated to the same\ntier that allows automated replies \u2014 and rate-limited so the\n\"click again\" pattern can't blow the token budget.",
            "item": [
                {
                    "name": "Preview an AI reply without sending anything",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/ai\/preview",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/ai\/preview"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"prompt\":\"We're a Brazilian bakery focused on sourdough...\",\"message\":\"Do you ship to Vila Mariana?\",\"history\":[\"architecto\"]}"
                        },
                        "description": "Runs the AI provider against the supplied business description and\neither a single message or a multi-turn conversation. Lets\noperators iterate on their prompt before flipping the toggle on.\n\nPlan-gated to Professional+ (same guard as production replies) so\nthe playground can't be used as a free LLM proxy. Additionally\nthrottled to 10 requests per minute per tenant."
                    },
                    "response": []
                },
                {
                    "name": "Generate three reply candidates for a conversation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/conversations\/:conversation\/ai-suggestions",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/conversations\/:conversation\/ai-suggestions",
                            "variable": [
                                {
                                    "id": "conversation",
                                    "key": "conversation",
                                    "value": "42",
                                    "description": "Conversation id."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Update the AI reply configuration",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/ai-config",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/ai-config"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"prompt\":\"We're a Brazilian bakery focused on sourdough...\",\"enabled\":true}"
                        },
                        "description": "Refuses the update with 403 + AI_PLAN_REQUIRED when the active plan\ndoesn't include AI replies (Starter)."
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/ai-faqs",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/ai-faqs",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/ai-faqs"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"question\":\"b\",\"answer\":\"n\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "PUT v1\/ai-faqs\/{faq}",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/ai-faqs\/:faq",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/ai-faqs\/:faq",
                            "variable": [
                                {
                                    "id": "faq",
                                    "key": "faq",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"question\":\"b\",\"answer\":\"n\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "DELETE v1\/ai-faqs\/{faq}",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/ai-faqs\/:faq",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/ai-faqs\/:faq",
                            "variable": [
                                {
                                    "id": "faq",
                                    "key": "faq",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Bulk reorder. Body shape: `{ \"ids\": [3, 1, 7, .",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/ai-faqs\/reorder",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/ai-faqs\/reorder"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"ids\":[16]}"
                        },
                        "description": "..] }`. Position\nis reassigned based on array order so the frontend can drag-\nand-drop without sending a full list of (id, position) pairs.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/ai\/improve-prompt",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/ai\/improve-prompt",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/ai\/improve-prompt"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"prompt\":\"b\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "API tokens",
            "description": "\nPersonal access tokens used by external integrations (the panel\nitself uses its own tokens minted at login under the `panel` name;\nthis controller never returns those). All token names are prefixed\nwith `api:` server-side so the listing can be filtered cleanly.\n\nOwner-gated AND plan-gated (api_access feature).",
            "item": [
                {
                    "name": "Create a new API token",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/api-tokens",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/api-tokens"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"CRM integration\",\"abilities\":[\"read\",\"write\"],\"expires_in_days\":90}"
                        },
                        "description": "The plain-text token is returned ONCE in this response \u2014 the\npanel must surface it for the operator to copy. Subsequent\nfetches only carry the hashed prefix."
                    },
                    "response": []
                },
                {
                    "name": "Revoke an API token",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/api-tokens\/:token",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/api-tokens\/:token",
                            "variable": [
                                {
                                    "id": "token",
                                    "key": "token",
                                    "value": "11",
                                    "description": "Token id."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Account",
            "description": "\nThe signed-in agent's own availability for taking NEW conversations.\nSelf-service: every member manages only their own state here. The\nowner's read-only view of the whole team lives on the dashboard.",
            "item": [
                {
                    "name": "Current user and workspace",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/me",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/me"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns the authenticated user and the workspace (tenant) they belong to.\nUseful for the panel boot-up: a single call hydrates the session state."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"user\":{\"id\":1,\"tenant_id\":1,\"name\":\"Lucia Pereira\",\"email\":\"lucia@plixa.app\",\"role\":\"owner\"},\"tenant\":{\"id\":1,\"name\":\"Lucia Studios\",\"slug\":\"lucia-studios-ab12cd\",\"country_code\":\"BR\",\"timezone\":\"America\/Sao_Paulo\",\"locale\":\"pt\",\"status\":\"active\"}},\"meta\":null,\"errors\":null}",
                            "name": "Authenticated"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\"data\":null,\"meta\":null,\"errors\":[{\"code\":\"UNAUTHENTICATED\",\"message\":\"Authentication required.\"}]}",
                            "name": "Not authenticated"
                        }
                    ]
                },
                {
                    "name": "Update the current user's preferences",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/me",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/me"
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Lucia Pereira\",\"locale\":\"pt-BR\"}"
                        },
                        "description": "Only fields the operator can edit on themselves \u2014 name, locale.\nWorkspace-level settings (tenant.locale, plan, etc.) live on\nother endpoints."
                    },
                    "response": []
                },
                {
                    "name": "Set whether I'm accepting new conversations",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/me\/availability",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/me\/availability"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"is_available\":false}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Presence heartbeat from the open panel",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/me\/availability\/heartbeat",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/me\/availability\/heartbeat"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Schedule the workspace for permanent deletion.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/account\/deletion",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/account\/deletion"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"password\":\"secret-password\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Cancel a scheduled deletion and restore the workspace.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/account\/deletion",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/account\/deletion"
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Admin \u2014 Authentication",
            "description": "\nSign-in for Plixa staff. Issues Sanctum tokens owned by the Admin model,\nresolved on subsequent requests by the AuthenticateAdmin middleware.",
            "item": [
                {
                    "name": "POST v1\/admin\/auth\/login",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/auth\/login",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/auth\/login"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"gbailey@example.net\",\"password\":\"|]|{+-\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/admin\/auth\/logout",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/auth\/logout",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/auth\/logout"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Admin \u2014 Email campaigns",
            "description": "\nStaff-authored marketing blasts sent from the backoffice through the\nverified Resend sender (hello@plixa.app). Each send is recorded with\nper-recipient delivery status; every mutation lands in admin_audit_logs.",
            "item": [
                {
                    "name": "POST v1\/admin\/campaigns",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/campaigns",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/campaigns"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Send a one-off test of the composed content to a single address so\nstaff can eyeball the rendered email before blasting the list. Sent\nsynchronously for immediate pass\/fail feedback; not persisted.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/campaigns\/test",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/campaigns\/test"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "DELETE v1\/admin\/campaigns\/{id}",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/campaigns\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/campaigns\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the campaign."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Admin \u2014 Knowledge base",
            "description": "\nStaff CRUD over help articles. Reads bypass the published scope so drafts\nare editable; every mutation is recorded to admin_audit_logs.",
            "item": [
                {
                    "name": "POST v1\/admin\/kb\/articles",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/kb\/articles",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/kb\/articles"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/admin\/kb\/images",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/kb\/images",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/kb\/images"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "PUT v1\/admin\/kb\/articles\/{article}",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/kb\/articles\/:article",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/kb\/articles\/:article",
                            "variable": [
                                {
                                    "id": "article",
                                    "key": "article",
                                    "value": "564",
                                    "description": "The article."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "DELETE v1\/admin\/kb\/articles\/{article}",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/kb\/articles\/:article",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/kb\/articles\/:article",
                            "variable": [
                                {
                                    "id": "article",
                                    "key": "article",
                                    "value": "564",
                                    "description": "The article."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Admin \u2014 Support",
            "description": "\nShared staff canned responses (macros) used to speed up replies. Global to\nthe backoffice team, not tenant-scoped.",
            "item": [
                {
                    "name": "POST v1\/admin\/support\/canned-replies",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/support\/canned-replies",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/support\/canned-replies"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "PATCH v1\/admin\/support\/canned-replies\/{cannedReply}",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/support\/canned-replies\/:cannedReply",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/support\/canned-replies\/:cannedReply",
                            "variable": [
                                {
                                    "id": "cannedReply",
                                    "key": "cannedReply",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "DELETE v1\/admin\/support\/canned-replies\/{cannedReply}",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/support\/canned-replies\/:cannedReply",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/support\/canned-replies\/:cannedReply",
                            "variable": [
                                {
                                    "id": "cannedReply",
                                    "key": "cannedReply",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/admin\/support\/tags",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/support\/tags",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/support\/tags"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "DELETE v1\/admin\/support\/tags\/{id}",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/support\/tags\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/support\/tags\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the tag."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "PUT v1\/admin\/support\/tickets\/{ticket}\/tags",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/support\/tickets\/:ticket\/tags",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/support\/tickets\/:ticket\/tags",
                            "variable": [
                                {
                                    "id": "ticket",
                                    "key": "ticket",
                                    "value": "564",
                                    "description": "The ticket."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"tag_ids\":[16]}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Heartbeat for ticket presence; returns the other staff viewing it.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/support\/tickets\/:ticket\/viewing",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/support\/tickets\/:ticket\/viewing",
                            "variable": [
                                {
                                    "id": "ticket",
                                    "key": "ticket",
                                    "value": "564",
                                    "description": "The ticket."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/admin\/support\/tickets\/{ticket}\/priority",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/support\/tickets\/:ticket\/priority",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/support\/tickets\/:ticket\/priority",
                            "variable": [
                                {
                                    "id": "ticket",
                                    "key": "ticket",
                                    "value": "564",
                                    "description": "The ticket."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"priority\":\"architecto\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/admin\/support\/tickets\/{ticket}\/assign",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/support\/tickets\/:ticket\/assign",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/support\/tickets\/:ticket\/assign",
                            "variable": [
                                {
                                    "id": "ticket",
                                    "key": "ticket",
                                    "value": "564",
                                    "description": "The ticket."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"admin_id\":16}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/admin\/support\/tickets\/{ticket}\/messages",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/support\/tickets\/:ticket\/messages",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/support\/tickets\/:ticket\/messages",
                            "variable": [
                                {
                                    "id": "ticket",
                                    "key": "ticket",
                                    "value": "564",
                                    "description": "The ticket."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/admin\/support\/tickets\/{ticket}\/close",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/support\/tickets\/:ticket\/close",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/support\/tickets\/:ticket\/close",
                            "variable": [
                                {
                                    "id": "ticket",
                                    "key": "ticket",
                                    "value": "564",
                                    "description": "The ticket."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/admin\/support\/tickets\/{ticket}\/reopen",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/support\/tickets\/:ticket\/reopen",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/support\/tickets\/:ticket\/reopen",
                            "variable": [
                                {
                                    "id": "ticket",
                                    "key": "ticket",
                                    "value": "564",
                                    "description": "The ticket."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Move the ticket through its lifecycle (open \/ pending \/ solved \/ closed).",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/support\/tickets\/:ticket\/status",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/support\/tickets\/:ticket\/status",
                            "variable": [
                                {
                                    "id": "ticket",
                                    "key": "ticket",
                                    "value": "564",
                                    "description": "The ticket."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"status\":\"architecto\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Admin \u2014 Tenants",
            "description": "\nCross-tenant oversight for staff: list every workspace with its plan,\nusage and status, drill into one, and run the safe lifecycle actions\n(suspend \/ reactivate). Every mutation is recorded to admin_audit_logs.",
            "item": [
                {
                    "name": "POST v1\/admin\/tenants\/{tenant_id}\/suspend",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/tenants\/:tenant_id\/suspend",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/tenants\/:tenant_id\/suspend",
                            "variable": [
                                {
                                    "id": "tenant_id",
                                    "key": "tenant_id",
                                    "value": "16",
                                    "description": "The ID of the tenant."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/admin\/tenants\/{tenant_id}\/reactivate",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/tenants\/:tenant_id\/reactivate",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/tenants\/:tenant_id\/reactivate",
                            "variable": [
                                {
                                    "id": "tenant_id",
                                    "key": "tenant_id",
                                    "value": "16",
                                    "description": "The ID of the tenant."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Mint a short-lived tenant token so staff can step into a customer's\npanel to debug. Time-boxed to 30 minutes and recorded to\nadmin_audit_logs \u2014 this is a powerful, fully-traceable action.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/tenants\/:tenant_id\/impersonate",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/tenants\/:tenant_id\/impersonate",
                            "variable": [
                                {
                                    "id": "tenant_id",
                                    "key": "tenant_id",
                                    "value": "16",
                                    "description": "The ID of the tenant."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"user_id\":16}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Grant a manual, Plixa-issued license \u2014 independent of Stripe. Used to\ncomp design partners \/ beta testers a plan for a custom window\n(`expires_in_months`) or for life (omit it). Unlocks the plan's\nfeatures + seats immediately via Tenant::planKey().",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/tenants\/:tenant_id\/license",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/tenants\/:tenant_id\/license",
                            "variable": [
                                {
                                    "id": "tenant_id",
                                    "key": "tenant_id",
                                    "value": "16",
                                    "description": "The ID of the tenant."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"plan_key\":\"architecto\",\"expires_in_months\":22}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Revoke a manual license grant \u2014 the tenant falls back to Stripe.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/tenants\/:tenant_id\/license",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/tenants\/:tenant_id\/license",
                            "variable": [
                                {
                                    "id": "tenant_id",
                                    "key": "tenant_id",
                                    "value": "16",
                                    "description": "The ID of the tenant."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Authentication",
            "description": "",
            "item": [
                {
                    "name": "Register a new workspace",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/auth\/register",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/auth\/register"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Lucia Pereira\",\"email\":\"lucia@plixa.app\",\"password\":\"super-secret-pw\",\"company_name\":\"Lucia Studios\",\"country_code\":\"BR\",\"tax_id\":\"architecto\",\"timezone\":\"America\\\/Sao_Paulo\",\"locale\":\"pt\",\"password_confirmation\":\"super-secret-pw\"}"
                        },
                        "description": "Creates a Tenant (workspace) and the owner User in a single transaction,\nthen issues a Sanctum bearer token for the owner.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\":{\"user\":{\"id\":1,\"tenant_id\":1,\"name\":\"Lucia Pereira\",\"email\":\"lucia@plixa.app\",\"role\":\"owner\"},\"tenant\":{\"id\":1,\"name\":\"Lucia Studios\",\"slug\":\"lucia-studios-ab12cd\",\"country_code\":\"BR\",\"timezone\":\"America\/Sao_Paulo\",\"locale\":\"pt\",\"status\":\"active\"},\"token\":\"1|abcdef0123456789\"},\"meta\":null,\"errors\":null}",
                            "name": "Account created"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"data\":null,\"meta\":null,\"errors\":[{\"code\":\"VALIDATION_FAILED\",\"message\":\"The given data was invalid.\",\"details\":{\"email\":[\"The email has already been taken.\"]}}]}",
                            "name": "Validation failure"
                        }
                    ]
                },
                {
                    "name": "Sign in",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/auth\/login",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/auth\/login"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"lucia@plixa.app\",\"password\":\"super-secret-pw\"}"
                        },
                        "description": "Returns a Sanctum bearer token on success. Email comparison is\ncase-insensitive. Wrong email and wrong password both return the same\n401 with code INVALID_CREDENTIALS \u2014 we don't leak user existence.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"user\":{\"id\":1,\"tenant_id\":1,\"name\":\"Lucia Pereira\",\"email\":\"lucia@plixa.app\",\"role\":\"owner\"},\"tenant\":{\"id\":1,\"name\":\"Lucia Studios\",\"slug\":\"lucia-studios-ab12cd\",\"country_code\":\"BR\",\"timezone\":\"America\/Sao_Paulo\",\"locale\":\"pt\",\"status\":\"active\"},\"token\":\"1|abcdef0123456789\"},\"meta\":null,\"errors\":null}",
                            "name": "Signed in"
                        },
                        {
                            "header": [],
                            "code": 401,
                            "body": "{\"data\":null,\"meta\":null,\"errors\":[{\"code\":\"INVALID_CREDENTIALS\",\"message\":\"The email or password is incorrect.\"}]}",
                            "name": "Invalid credentials"
                        }
                    ]
                },
                {
                    "name": "Verify a TOTP or recovery code and complete the login.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/auth\/2fa-challenge",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/auth\/2fa-challenge"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"code\":\"architecto\",\"recovery_code\":\"architecto\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Sign out",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/auth\/logout",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/auth\/logout"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Revokes the token that authenticated this request. Other tokens on the\nsame account keep working (e.g. another device, another integration)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "",
                            "name": "Signed out"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Auto-assignment",
            "description": "\nPer-workspace routing rules that pick an assignee for brand-new\nconversations. Listing is open to every member so agents can see\nwhy they got assigned; mutation is owner-only and plan-gated.",
            "item": [
                {
                    "name": "Create a new auto-assignment rule.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/auto-assignment-rules",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/auto-assignment-rules"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"priority\":100,\"condition_type\":\"keyword\",\"condition_value\":\"architecto\",\"action_type\":\"least_busy\",\"action_user_id\":16,\"is_active\":false}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Preview which rule (if any) would fire for a hypothetical inbound\nand who it would route to \u2014 without assigning anything or advancing\nthe round-robin cursor. Lets an owner verify rules before they act\non real customers.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/auto-assignment-rules\/preview",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/auto-assignment-rules\/preview"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"message\":\"I want a refund\",\"label_id\":16}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Update an existing auto-assignment rule.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/auto-assignment-rules\/:rule",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/auto-assignment-rules\/:rule",
                            "variable": [
                                {
                                    "id": "rule",
                                    "key": "rule",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete an auto-assignment rule.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/auto-assignment-rules\/:rule",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/auto-assignment-rules\/:rule",
                            "variable": [
                                {
                                    "id": "rule",
                                    "key": "rule",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "{}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Billing",
            "description": "",
            "item": [
                {
                    "name": "Start a Stripe Checkout session",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/billing\/checkout",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/billing\/checkout"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"plan\":\"professional\",\"interval\":\"year\"}"
                        },
                        "description": "Creates a Stripe Checkout Session for the authenticated user's workspace\nand returns the hosted URL the panel should redirect to. A 7-day free\ntrial is applied to the workspace's first subscription."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\":{\"url\":\"https:\/\/checkout.stripe.com\/c\/pay\/cs_test_abc123\",\"plan\":\"professional\",\"interval\":\"month\"},\"meta\":null,\"errors\":null}",
                            "name": "Session created"
                        },
                        {
                            "header": [],
                            "code": 422,
                            "body": "{\"data\":null,\"meta\":null,\"errors\":[{\"code\":\"VALIDATION_FAILED\",\"message\":\"The given data was invalid.\",\"details\":{\"plan\":[\"The selected plan is invalid.\"]}}]}",
                            "name": "Invalid plan"
                        },
                        {
                            "header": [],
                            "code": 500,
                            "body": "{\"data\":null,\"meta\":null,\"errors\":[{\"code\":\"INTERNAL_ERROR\",\"message\":\"This plan has no Stripe price configured yet.\"}]}",
                            "name": "Stripe configuration missing"
                        }
                    ]
                },
                {
                    "name": "Open the Stripe Customer Portal",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/billing\/portal",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/billing\/portal"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Returns a one-shot URL that lets the customer update card, change\nplan, see invoices, or cancel \u2014 all without us writing UI for it.\nThe portal must be enabled in Stripe Dashboard \u2192 Settings \u2192 Billing\n\u2192 Customer portal (test mode and live mode are separate)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\"data\":{\"url\":\"https:\/\/billing.stripe.com\/p\/session\/test_...\"},\"meta\":null,\"errors\":null}",
                            "name": "Portal URL returned"
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\"data\":null,\"meta\":null,\"errors\":[{\"code\":\"NOT_FOUND\",\"message\":\"No active subscription to manage yet.\"}]}",
                            "name": "No Stripe customer yet (no subscription started)"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Broadcasts",
            "description": "\nMass-message campaigns. Owner-only writes, plan-gated to\nProfessional+. Reads (list + detail + recipient breakdown) are\nopen to every member so agents can see what's been sent and to\nwhom.",
            "item": [
                {
                    "name": "Create and queue a broadcast.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/broadcasts",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/broadcasts"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"Black Friday 50% off\",\"body\":\"Hi @{{first_name}}! 50% off this Friday.\",\"source\":\"manual\",\"recipients\":[\"architecto\"],\"label_id\":16,\"scheduled_at\":\"2052-07-03\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Cancel a broadcast still in flight. Already-sent recipients\nstay sent; pending ones are marked failed by the worker on\nthe next check.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/broadcasts\/:broadcast\/cancel",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/broadcasts\/:broadcast\/cancel",
                            "variable": [
                                {
                                    "id": "broadcast",
                                    "key": "broadcast",
                                    "value": "564",
                                    "description": "The broadcast."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Business hours",
            "description": "\nPer-workspace open\/closed schedule. When enabled, inbound messages\noutside the configured window trigger an auto-reply instead of an\nAI reply. Available on every plan \u2014 closed-hours signalling is a\ntrust feature, not a paywalled extra.",
            "item": [
                {
                    "name": "Update the business hours configuration",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/business-hours-config",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/business-hours-config"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"enabled\":true,\"message\":\"We're closed right now. We'll get back to you in the morning!\",\"hours\":[\"architecto\"],\"pause_sla\":false}"
                        },
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "CSAT",
            "description": "\nPost-resolution satisfaction survey. When a conversation is resolved\nthe bot asks the customer to rate it 1-5; a low score optionally asks\nfor a comment. Owner-managed, available on every plan.",
            "item": [
                {
                    "name": "Update the CSAT configuration",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/csat-config",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/csat-config"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"enabled\":true,\"question\":\"How was your support? Reply 1-5.\",\"follow_up_enabled\":true,\"follow_up_question\":\"What could we improve?\",\"thank_you\":\"Thanks for the feedback!\",\"visible_to_agents\":true}"
                        },
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Contacts",
            "description": "\nTenant-scoped contact directory. Reads are open to every member;\nwrites are owner-gated because notes + field values are visible\nacross the workspace and shouldn't be agent-mutable.\n\nCustom field READS are always permitted (so agents see what the\nowner configured); only writes to definitions are plan-gated.",
            "item": [
                {
                    "name": "Create a contact (or return the existing one for the phone)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/contacts",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/contacts"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"contact_phone\":\"642559314232682282\",\"contact_name\":\"u\"}"
                        },
                        "description": "Idempotent per (tenant, phone): manual creation from the panel \u2014\ne.g. booking an appointment for a walk-in who hasn't messaged yet \u2014\nmust not fail when that phone already wrote in. Open to every member\nbecause agents legitimately add customers while booking; only\nfield-value writes and deletion stay owner-gated."
                    },
                    "response": []
                },
                {
                    "name": "Attach a label to the contact",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/contacts\/:contact\/labels\/:label",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/contacts\/:contact\/labels\/:label",
                            "variable": [
                                {
                                    "id": "contact",
                                    "key": "contact",
                                    "value": "564",
                                    "description": "The contact."
                                },
                                {
                                    "id": "label",
                                    "key": "label",
                                    "value": "564",
                                    "description": "The label."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Idempotent: re-attaching is a no-op. Open to every workspace\nmember so agents can tag customers without owner approval.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Detach a label from the contact",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/contacts\/:contact\/labels\/:label",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/contacts\/:contact\/labels\/:label",
                            "variable": [
                                {
                                    "id": "contact",
                                    "key": "contact",
                                    "value": "564",
                                    "description": "The contact."
                                },
                                {
                                    "id": "label",
                                    "key": "label",
                                    "value": "564",
                                    "description": "The label."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Update a contact's editable fields",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/contacts\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/contacts\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the contact."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"contact_name\":\"b\",\"notes\":\"n\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete a contact",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/contacts\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/contacts\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the contact."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Field values cascade with the contact row. Conversations stay\n(their `contact_id` becomes null via the FK on-delete rule);\nthe panel still shows them by phone."
                    },
                    "response": []
                },
                {
                    "name": "Set \/ clear the contact's custom field values in one shot",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/contacts\/:contact\/custom-fields",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/contacts\/:contact\/custom-fields",
                            "variable": [
                                {
                                    "id": "contact",
                                    "key": "contact",
                                    "value": "564",
                                    "description": "The contact."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"values\":[\"b\"]}"
                        },
                        "description": "Body: `{ values: { [definition_id]: string|null } }`. Empty\nstrings get coerced to null. Unknown definition ids are\nsilently skipped \u2014 keeps the panel resilient to an out-of-\ndate list. Owner-only, plan-gated."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Contacts (custom fields)",
            "description": "\nPer-tenant schema for the custom fields operators attach to\nContact rows. Listing is open to every member (the inbox renders\nthe definitions inline next to the contact's values). Writes are\nowner-only AND plan-gated (Professional+).",
            "item": [
                {
                    "name": "Create a new field definition",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/custom-field-definitions",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/custom-field-definitions"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Update a field definition",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/custom-field-definitions\/:definition",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/custom-field-definitions\/:definition",
                            "variable": [
                                {
                                    "id": "definition",
                                    "key": "definition",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete a field definition",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/custom-field-definitions\/:definition",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/custom-field-definitions\/:definition",
                            "variable": [
                                {
                                    "id": "definition",
                                    "key": "definition",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Cascades: every value of this field across all contacts is\nwiped at the database level via the FK on-delete rule."
                    },
                    "response": []
                },
                {
                    "name": "Reorder field definitions",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/custom-field-definitions\/reorder",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/custom-field-definitions\/reorder"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"ids\":[16]}"
                        },
                        "description": "Same pattern as saved-replies reorder: ids in the desired\ntop-to-bottom order. Ids from other tenants get silently\ndropped at the SQL update layer."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Conversations",
            "description": "",
            "item": [
                {
                    "name": "Apply an action to many conversations in one request",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/conversations\/bulk",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/conversations\/bulk"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"action\":\"close\",\"ids\":[12,17,19],\"assignee_id\":7,\"label_id\":3}"
                        },
                        "description": "Cuts the number of round-trips for operators triaging the inbox.\nSupported actions: close, reopen, assign, delete, add_label,\nremove_label. Returns the number of rows actually affected\n(silently skips ids that don't belong to the tenant \u2014\nwithoutGlobalScope is never applied here)."
                    },
                    "response": []
                },
                {
                    "name": "Update a conversation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/conversations\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/conversations\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the conversation."
                                },
                                {
                                    "id": "conversation",
                                    "key": "conversation",
                                    "value": "42",
                                    "description": "Conversation id."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"contact_name\":\"Lucia Pereira\",\"notes\":\"n\",\"assigned_user_id\":16}"
                        },
                        "description": "Edit the contact label shown for the conversation. WhatsApp doesn't\nalways send a pushName, so operators need to tag contacts manually."
                    },
                    "response": []
                },
                {
                    "name": "Snooze a conversation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/conversations\/:conversation\/snooze",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/conversations\/:conversation\/snooze",
                            "variable": [
                                {
                                    "id": "conversation",
                                    "key": "conversation",
                                    "value": "42",
                                    "description": "Conversation id."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"until\":\"2026-05-29T09:00:00Z\"}"
                        },
                        "description": "Hides the conversation from the default inbox list until the\ngiven timestamp passes. The `plixa:wake-snoozed-conversations`\nscheduled command clears the stamp at the right moment and\nbroadcasts a `ConversationUpdated` so the inbox refreshes\nwithout a hard reload. Pass `until: null` to wake immediately."
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/conversations\/{conversation_id}\/messages",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/conversations\/:conversation_id\/messages",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/conversations\/:conversation_id\/messages",
                            "variable": [
                                {
                                    "id": "conversation_id",
                                    "key": "conversation_id",
                                    "value": "architecto",
                                    "description": "The ID of the conversation."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"body\":\"b\",\"type\":\"text\",\"quoted_message_id\":16}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Send an outbound media message",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/conversations\/:conversation_id\/media-messages",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/conversations\/:conversation_id\/media-messages",
                            "variable": [
                                {
                                    "id": "conversation_id",
                                    "key": "conversation_id",
                                    "value": "architecto",
                                    "description": "The ID of the conversation."
                                },
                                {
                                    "id": "conversation",
                                    "key": "conversation",
                                    "value": "42",
                                    "description": "Conversation id."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "multipart\/form-data"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "formdata",
                            "formdata": [
                                {
                                    "key": "caption",
                                    "value": "architecto",
                                    "type": "text",
                                    "description": "Optional caption shown next to the media."
                                },
                                {
                                    "key": "voice",
                                    "value": "1",
                                    "type": "text",
                                    "description": "Send as a WhatsApp voice note (PTT) instead of a plain file."
                                },
                                {
                                    "key": "duration_seconds",
                                    "value": "5",
                                    "type": "text",
                                    "description": "Recorded length in seconds (used for voice notes)."
                                },
                                {
                                    "key": "waveform[0]",
                                    "value": "7",
                                    "type": "text",
                                    "description": ""
                                },
                                {
                                    "key": "file",
                                    "src": [],
                                    "type": "file"
                                }
                            ]
                        },
                        "description": "Accepts a multipart upload (image, video, audio, document) plus\nan optional caption. The file is forwarded to Evolution as\nbase64 \u2014 no S3 in MVP, no media URL we host. The resulting\nMessage row stores trimmed metadata so the inbox renders a\nthumbnail \/ link inline just like inbound media."
                    },
                    "response": []
                },
                {
                    "name": "Delete a conversation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/conversations\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/conversations\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the conversation."
                                },
                                {
                                    "id": "conversation",
                                    "key": "conversation",
                                    "value": "42",
                                    "description": "Conversation id."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Permanently removes a conversation and every message inside it\nfor the authenticated tenant. The contact on the customer's phone\nis unaffected \u2014 only Plixa's local copy goes. Useful while\nsandbox-testing."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 204,
                            "body": "{}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Daily digest",
            "description": "\nOwner-only toggle for the daily activity email. Off by default;\nflipping it on enrolls the workspace in tomorrow's 9am UTC run.",
            "item": [
                {
                    "name": "Update the daily digest configuration",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/digest-config",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/digest-config"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"enabled\":true,\"frequency\":\"weekly\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Send a one-off \"test\" digest to the current authenticated user.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/digest-config\/test",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/digest-config\/test"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Uses the same stats payload + template as the scheduled job so\nthe operator gets a real preview of what tomorrow's email will\nlook like. Differences from the scheduled run:\n  - Recipient is the CURRENT user, not the owner. (An owner\n    testing from their phone might want it sent to a personal\n    inbox via a copy of the account.)\n  - Empty-activity workspaces still get the email \u2014 for a\n    test, the operator wants the layout regardless."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Endpoints",
            "description": "",
            "item": [
                {
                    "name": "POST v1\/ai\/extract-business-hours",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/ai\/extract-business-hours",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/ai\/extract-business-hours"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"prompt\":\"b\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Flows",
            "description": "\nVisual conversation flows: the bot walks an inbound conversation\nthrough a graph of steps (greeting, menu, capture, route to a sector,\nhand off) before the AI or a human takes over. Owner-only \u2014 flows are\nworkspace automation, not per-agent settings.\n\nEditing saves a draft; the live graph only changes on Publish, so a\nhalf-finished edit never reaches a real customer.",
            "item": [
                {
                    "name": "Create a flow",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/flows",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/flows"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"WhatsApp reception\",\"reprompt_after_minutes\":22,\"close_after_minutes\":7,\"reprompt_message\":\"z\",\"close_conversation_on_timeout\":true}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Save a flow draft",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/flows\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/flows\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the flow."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"name\":\"b\",\"reprompt_after_minutes\":22,\"close_after_minutes\":7,\"reprompt_message\":\"z\",\"close_conversation_on_timeout\":true}"
                        },
                        "description": "Persists the working graph without affecting live conversations."
                    },
                    "response": []
                },
                {
                    "name": "Publish a flow",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/flows\/:flow\/publish",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/flows\/:flow\/publish",
                            "variable": [
                                {
                                    "id": "flow",
                                    "key": "flow",
                                    "value": "564",
                                    "description": "The flow."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Validates the draft graph and copies it into the live definition."
                    },
                    "response": []
                },
                {
                    "name": "Enable or disable a flow",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/flows\/:flow\/toggle",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/flows\/:flow\/toggle",
                            "variable": [
                                {
                                    "id": "flow",
                                    "key": "flow",
                                    "value": "564",
                                    "description": "The flow."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"enabled\":true}"
                        },
                        "description": "Turning a flow on switches every other flow with the same trigger\noff, so only one reception flow runs at a time. A flow must be\npublished before it can be enabled."
                    },
                    "response": []
                },
                {
                    "name": "Delete a flow",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/flows\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/flows\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the flow."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Build \/ edit a flow draft via natural language",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/flows\/:flow\/ai-build",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/flows\/:flow\/ai-build",
                            "variable": [
                                {
                                    "id": "flow",
                                    "key": "flow",
                                    "value": "564",
                                    "description": "The flow."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"history\":[\"architecto\"],\"graph\":[]}"
                        },
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Inbox",
            "description": "\nOn-demand AI summary of an inbox thread. When an agent takes over a\nlong conversation, this gives them a 3-6-sentence TL;DR so they\ndon't have to scroll through hundreds of messages to ground\nthemselves. Customer never sees the output \u2014 operator-facing only.\n\nPlan-gated to the same tier that allows automated AI replies. Cached\non the conversation row; the cache invalidates when a new message\nlands. A `?refresh=1` query param forces regeneration.",
            "item": [
                {
                    "name": "Generate or fetch the cached AI summary for a conversation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/conversations\/:conversation\/summary",
                            "query": [
                                {
                                    "key": "refresh",
                                    "value": "1",
                                    "description": "Pass `1` to force regeneration even when the cache is fresh.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/v1\/conversations\/:conversation\/summary?refresh=1",
                            "variable": [
                                {
                                    "id": "conversation",
                                    "key": "conversation",
                                    "value": "42",
                                    "description": "Conversation id."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Labels",
            "description": "\nWorkspace-level tags every member can pin onto conversations. Listing\nis open to every member (the inbox needs to render badges); creating,\nrenaming, recoloring and deleting is owner-only \u2014 keeps the palette\ndisciplined.",
            "item": [
                {
                    "name": "Attach a label to a conversation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/conversations\/:conversation\/labels\/:label",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/conversations\/:conversation\/labels\/:label",
                            "variable": [
                                {
                                    "id": "conversation",
                                    "key": "conversation",
                                    "value": "564",
                                    "description": "The conversation."
                                },
                                {
                                    "id": "label",
                                    "key": "label",
                                    "value": "564",
                                    "description": "The label."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Any workspace member can attach. Idempotent: re-attaching is a\n200 with the same payload, not a duplicate row."
                    },
                    "response": []
                },
                {
                    "name": "Detach a label from a conversation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/conversations\/:conversation\/labels\/:label",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/conversations\/:conversation\/labels\/:label",
                            "variable": [
                                {
                                    "id": "conversation",
                                    "key": "conversation",
                                    "value": "564",
                                    "description": "The conversation."
                                },
                                {
                                    "id": "label",
                                    "key": "label",
                                    "value": "564",
                                    "description": "The label."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Create a label",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/labels",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/labels"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Owner-only."
                    },
                    "response": []
                },
                {
                    "name": "Update a label",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/labels\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/labels\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the label."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Owner-only."
                    },
                    "response": []
                },
                {
                    "name": "Delete a label",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/labels\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/labels\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the label."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Owner-only. Also detaches the label from every conversation it's\nattached to (cascade on conversation_label)."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Messages API",
            "description": "\nExternal entry point for sending outbound WhatsApp messages through\nPlixa. Authenticates via Sanctum personal access token, with the\n`write` ability required. Plan-gated to api_access = true.\n\nLooks up the tenant's first connected phone instance and uses it\n(Plixa MVP only supports one number per workspace anyway). Creates\nor reopens a conversation for the contact and persists the outbound\nMessage row so the panel renders it just like any other reply.",
            "item": [
                {
                    "name": "POST v1\/messages\/send",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/messages\/send",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/messages\/send"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"phone\":\"642559314232682282\",\"body\":\"u\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Onboarding",
            "description": "\nComputes the \"getting started\" checklist the dashboard banner uses\nto nudge new workspaces through their first-run setup. State is\nderived from existing tables on the fly \u2014 no extra columns, no\nbackground jobs to keep in sync. The only persisted bit is whether\nthe owner explicitly dismissed the banner.",
            "item": [
                {
                    "name": "POST v1\/onboarding\/dismiss",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/onboarding\/dismiss",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/onboarding\/dismiss"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Payments (Stripe Connect)",
            "description": "\nOwner-only. Connects each workspace's own Stripe account (Express) so\nbooking deposits land there, and surfaces the payments the workspace has\nreceived. No API keys: Stripe hosts the onboarding.",
            "item": [
                {
                    "name": "Start (or resume) Stripe onboarding \u2014 returns a hosted URL to redirect to.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/payments\/connect",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/payments\/connect"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "One-time login link to the workspace's Stripe Express dashboard.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/payments\/dashboard-link",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/payments\/dashboard-link"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Phone instances",
            "description": "",
            "item": [
                {
                    "name": "Add a WhatsApp number",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/phone-instances",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/phone-instances"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Owner-only. Provisions a brand-new Evolution instance for the\ntenant \u2014 up to the plan's `whatsapp_numbers` limit \u2014 and returns it\nin `pending_qr` state so the panel can immediately show the pairing\nQR. Rejected with PHONE_NUMBER_LIMIT_REACHED (409) once the plan's\nallowance is exhausted."
                    },
                    "response": []
                },
                {
                    "name": "Disconnect a phone instance",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/phone-instances\/:phone_instance\/disconnect",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/phone-instances\/:phone_instance\/disconnect",
                            "variable": [
                                {
                                    "id": "phone_instance",
                                    "key": "phone_instance",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Logs the WhatsApp session out of Evolution and flips the local\nstatus to `disconnected`. The next pairing will require a fresh\nQR scan. Owner-only \u2014 disconnecting silently mid-day would\ndisrupt the entire workspace."
                    },
                    "response": []
                },
                {
                    "name": "Restart a phone instance",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/phone-instances\/:phone_instance\/restart",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/phone-instances\/:phone_instance\/restart",
                            "variable": [
                                {
                                    "id": "phone_instance",
                                    "key": "phone_instance",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Asks Evolution to bounce the connection without unpairing. Useful\nwhen the panel shows \"disconnected\" but the WhatsApp session is\nstill valid upstream and just needs a nudge. Flips the local\nstatus to `pending_qr` so the next QR poll picks up a fresh code."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Push notifications",
            "description": "\nBrowser-based push subscriptions backed by the W3C Push API + VAPID.\nThe panel registers a service worker, asks the browser for a\nPushSubscription, and POSTs the endpoint + keys here. Notifications\nare then routed through the same Laravel queue as our emails.",
            "item": [
                {
                    "name": "Register or refresh a push subscription",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/push\/subscriptions",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/push\/subscriptions"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"endpoint\":\"b\",\"keys\":{\"p256dh\":\"architecto\",\"auth\":\"architecto\"},\"content_encoding\":\"n\"}"
                        },
                        "description": "Called by the panel right after the browser grants Notifications\npermission. Endpoint is unique per (user, browser) \u2014 the channel\nupserts so re-subscribing won't create duplicates."
                    },
                    "response": []
                },
                {
                    "name": "Remove a push subscription",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/push\/subscriptions",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/push\/subscriptions"
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"endpoint\":\"b\"}"
                        },
                        "description": "Called when the user turns notifications off in the panel or when\nthe service worker reports the subscription has been revoked."
                    },
                    "response": []
                },
                {
                    "name": "Register or refresh a push subscription",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/push\/subscriptions",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/push\/subscriptions"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"endpoint\":\"b\",\"keys\":{\"p256dh\":\"architecto\",\"auth\":\"architecto\"},\"content_encoding\":\"n\"}"
                        },
                        "description": "Called by the panel right after the browser grants Notifications\npermission. Endpoint is unique per (user, browser) \u2014 the channel\nupserts so re-subscribing won't create duplicates."
                    },
                    "response": []
                },
                {
                    "name": "Remove a push subscription",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/admin\/push\/subscriptions",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/admin\/push\/subscriptions"
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"endpoint\":\"b\"}"
                        },
                        "description": "Called when the user turns notifications off in the panel or when\nthe service worker reports the subscription has been revoked."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "SLA targets",
            "description": "\nTwo optional service-level targets per workspace:\n\n - `first_response_seconds` \u2014 how long the customer should wait\n   before someone in the workspace answers their first message.\n - `resolution_seconds` \u2014 how long a conversation should stay\n   open before it gets closed.\n\nNULL on either means \"no target set\"; the inbox and reports\nskip the SLA decoration entirely in that case. Each target is\ncapped at 7 days (604800s) \u2014 anything longer is hardly an SLA.",
            "item": [
                {
                    "name": "Update the workspace SLA targets",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/sla-config",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/sla-config"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"first_response_seconds\":900,\"resolution_seconds\":86400}"
                        },
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Saved replies",
            "description": "\nCanned messages every workspace member can pick from while composing\nin the inbox. Visible to every member (no per-user replies in MVP),\nbut only owners can create\/edit\/delete \u2014 keeps the dropdown curated.",
            "item": [
                {
                    "name": "Create a saved reply",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/saved-replies",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/saved-replies"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"label\":\"Hours\",\"body\":\"We're open Monday to Saturday 9am-7pm.\"}"
                        },
                        "description": "Owner-only."
                    },
                    "response": []
                },
                {
                    "name": "Update a saved reply",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/saved-replies\/:savedReply",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/saved-replies\/:savedReply",
                            "variable": [
                                {
                                    "id": "savedReply",
                                    "key": "savedReply",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"label\":\"b\",\"body\":\"n\"}"
                        },
                        "description": "Owner-only."
                    },
                    "response": []
                },
                {
                    "name": "Delete a saved reply",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/saved-replies\/:savedReply",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/saved-replies\/:savedReply",
                            "variable": [
                                {
                                    "id": "savedReply",
                                    "key": "savedReply",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Owner-only."
                    },
                    "response": []
                },
                {
                    "name": "Reorder saved replies",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/saved-replies\/reorder",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/saved-replies\/reorder"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"ids\":[12,7,9]}"
                        },
                        "description": "Accepts an array of saved-reply ids in the desired display order.\nIds missing from the array keep their current `position` so a\npartial drag (e.g., reordering 3 out of 30) doesn't trash the\nrest. Owner-only."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Scheduling \u2014 appointments",
            "description": "\nThe calendar feed plus staff actions: manual booking, reschedule,\ncancel, and marking a no-show. All tenant-scoped; open to every member.",
            "item": [
                {
                    "name": "Book an appointment manually (staff)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/appointments",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/appointments"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"service_id\":16,\"start\":\"2026-06-10T00:37:58\",\"provider_id\":16,\"contact_id\":16,\"notes\":\"n\",\"occurrences\":7}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Edit an appointment's basic fields",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/appointments\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/appointments\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "16",
                                    "description": "The ID of the appointment."
                                }
                            ]
                        },
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"contact_id\":16,\"notes\":\"n\"}"
                        },
                        "description": "The booking form lets staff create an appointment without a contact\n(e.g. a slot reserved before the customer is on file). Those fields are\notherwise stuck once the appointment exists \u2014 there's no generic edit \u2014\nso this patches them in afterwards. Only the keys actually sent are\ntouched, so the panel can update just the contact."
                    },
                    "response": []
                },
                {
                    "name": "Reschedule an appointment",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/appointments\/:appointment\/reschedule",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/appointments\/:appointment\/reschedule",
                            "variable": [
                                {
                                    "id": "appointment",
                                    "key": "appointment",
                                    "value": "564",
                                    "description": "The appointment."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"start\":\"2026-06-10T00:37:58\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Cancel an appointment",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/appointments\/:appointment\/cancel",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/appointments\/:appointment\/cancel",
                            "variable": [
                                {
                                    "id": "appointment",
                                    "key": "appointment",
                                    "value": "564",
                                    "description": "The appointment."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"reason\":\"b\"}"
                        },
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Mark an appointment as a no-show",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/appointments\/:appointment\/no-show",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/appointments\/:appointment\/no-show",
                            "variable": [
                                {
                                    "id": "appointment",
                                    "key": "appointment",
                                    "value": "564",
                                    "description": "The appointment."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Mark an appointment as completed (the patient attended)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/appointments\/:appointment\/complete",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/appointments\/:appointment\/complete",
                            "variable": [
                                {
                                    "id": "appointment",
                                    "key": "appointment",
                                    "value": "564",
                                    "description": "The appointment."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Mark that the patient has arrived \/ checked in (waiting to be seen)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/appointments\/:appointment\/arrive",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/appointments\/:appointment\/arrive",
                            "variable": [
                                {
                                    "id": "appointment",
                                    "key": "appointment",
                                    "value": "564",
                                    "description": "The appointment."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Create a Stripe Checkout link to collect an appointment's deposit \/\nprepayment. Operational (owner + agent) so a front-desk agent can send\nthe link. Returns 422 when nothing is owed.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/appointments\/:appointment\/payment-link",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/appointments\/:appointment\/payment-link",
                            "variable": [
                                {
                                    "id": "appointment",
                                    "key": "appointment",
                                    "value": "564",
                                    "description": "The appointment."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Approve a pending (requested) booking \u2192 confirmed, and schedule its\nreminders. Owner only.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/appointments\/:appointment\/approve",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/appointments\/:appointment\/approve",
                            "variable": [
                                {
                                    "id": "appointment",
                                    "key": "appointment",
                                    "value": "564",
                                    "description": "The appointment."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Decline a pending (requested) booking \u2192 cancelled. Owner only.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/appointments\/:appointment\/decline",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/appointments\/:appointment\/decline",
                            "variable": [
                                {
                                    "id": "appointment",
                                    "key": "appointment",
                                    "value": "564",
                                    "description": "The appointment."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Scheduling \u2014 base schedule",
            "description": "\nThe workspace \"base\" weekly working hours: a template the owner defines\nonce and imports into each provider, instead of typing the same hours for\n30 people. Stored as JSON on the tenant; only the weekly open windows\n(no date overrides). Owner-only.",
            "item": [
                {
                    "name": "Replace the workspace base schedule (owner only)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/default-schedule",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/default-schedule"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"timezone\":\"Asia\\\/Yekaterinburg\",\"rules\":[\"architecto\"]}"
                        },
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Scheduling \u2014 calendar sync",
            "description": "\nPer-agent Google Calendar link. Each member connects their own Google\naccount: Plixa writes their appointments to it and reads their free\/busy\nback so outside commitments block Plixa slots. Tokens are encrypted at\nrest and never returned to the client.",
            "item": [
                {
                    "name": "Disconnect the current user's Google Calendar.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/calendar\/google\/disconnect",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/calendar\/google\/disconnect"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Scheduling \u2014 holidays",
            "description": "\nOwner toggle: import the workspace country's public holidays as closures\nso the AI never books on them. Enabling (or re-saving) runs a sync now;\ndisabling drops future holiday closures. Owner-only (route group).",
            "item": [
                {
                    "name": "Enable or disable holiday blocking",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/holiday-config",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/holiday-config"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"block_holidays\":false}"
                        },
                        "description": "Enabling imports holidays immediately; a network hiccup still saves the\ntoggle (synced=false) and the scheduled sync retries later."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Scheduling \u2014 provider availability",
            "description": "\nA provider's bookable working hours: a timezone plus a flat list of\nrules (recurring weekday windows and date overrides, open or blocked).\nReadable by members; the full-replace update is owner-only.",
            "item": [
                {
                    "name": "Replace a provider's schedule (owner only)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/providers\/:user\/schedule",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/providers\/:user\/schedule",
                            "variable": [
                                {
                                    "id": "user",
                                    "key": "user",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"timezone\":\"Asia\\\/Yekaterinburg\",\"rules\":[{\"kind\":\"architecto\",\"weekday\":4,\"date\":\"2026-06-10\",\"start_time\":\"00:37\",\"end_time\":\"00:37\"}]}"
                        },
                        "description": "Sends the full set of rules; the previous rules are replaced wholesale."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Scheduling \u2014 reminders",
            "description": "\nOwner setting: when the workspace sends appointment reminders, as a list of\n\"minutes before the appointment\". Null falls back to the system default; an\nempty list turns reminders off. A service can still override per-service.\nOwner-only (route group).",
            "item": [
                {
                    "name": "Set the workspace's reminder timing",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/reminder-config",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/reminder-config"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"offsets\":[16]}"
                        },
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Scheduling \u2014 resources",
            "description": "\nShared, capacity-limited assets (rooms, equipment). A booking of a linked\nservice consumes one unit; the slot is full once capacity is reached.\nReadable by members; mutations owner-only.",
            "item": [
                {
                    "name": "Create a resource (owner only)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/resources",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/resources"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Update a resource (owner only)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/resources\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/resources\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the resource."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete a resource (owner only)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/resources\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/resources\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the resource."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Scheduling \u2014 saved filters",
            "description": "\nPer-user saved calendar filters: which providers, services and statuses to\nshow on the agenda. Each person manages their own; one can be the default,\napplied automatically when they open the calendar. Every member (not just\nowners) keeps their own set.",
            "item": [
                {
                    "name": "Save a new filter",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/calendar-filters",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/calendar-filters"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Update a saved filter",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/calendar-filters\/:filter",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/calendar-filters\/:filter",
                            "variable": [
                                {
                                    "id": "filter",
                                    "key": "filter",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete a saved filter",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/calendar-filters\/:filter",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/calendar-filters\/:filter",
                            "variable": [
                                {
                                    "id": "filter",
                                    "key": "filter",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Scheduling \u2014 services",
            "description": "\nBookable services. Readable by every member (the calendar + booking\nflows need them); create\/update\/delete are owner-only.",
            "item": [
                {
                    "name": "Create a service (owner only)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/services",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/services"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Update a service (owner only)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/services\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/services\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the service."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                },
                {
                    "name": "Delete a service (owner only)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/services\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/services\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the service."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Scheduling \u2014 waitlist",
            "description": "\nSurfaces the appointment waitlist (built up by the AI when no slots are\nfree) so staff can see who's waiting for which service and clear stale\nentries. Tenant-scoped; open to every member. The auto-notify-on-cancel\nflow lives in NativeSchedulingProvider \u2014 this is the human-facing view.",
            "item": [
                {
                    "name": "Remove a waitlist entry",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/waitlist\/:entry_id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/waitlist\/:entry_id",
                            "variable": [
                                {
                                    "id": "entry_id",
                                    "key": "entry_id",
                                    "value": "16",
                                    "description": "The ID of the entry."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Scheduling \u2014 workspace closures",
            "description": "\nDays the whole workspace is closed. Adding one date blocks every\nprovider (and the AI) for that day, so the owner closes the business\nonce instead of editing each provider's schedule. Reads are open to\nmembers; create\/delete are owner-only (route group).",
            "item": [
                {
                    "name": "Close the workspace on a date (owner only)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/closures",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/closures"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"date\":\"2026-06-10\",\"reason\":\"b\"}"
                        },
                        "description": "Idempotent per (tenant, date): re-closing an already-closed day just\nreturns it. Manual source \u2014 a holiday sync owns its own rows."
                    },
                    "response": []
                },
                {
                    "name": "Reopen the workspace on a date (owner only)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/scheduling\/closures\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/scheduling\/closures\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the closure."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Sectors",
            "description": "\nBusiness departments (Sales, Support, Finance\u2026) the owner defines so\nconversations can be routed to the right team. Listing is open to\nevery member (the inbox and the flow editor both need it); creating,\nrenaming and assigning agents is owner-only.",
            "item": [
                {
                    "name": "Create a sector",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/sectors",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/sectors"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Owner-only."
                    },
                    "response": []
                },
                {
                    "name": "Update a sector",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/sectors\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/sectors\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the sector."
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Owner-only. Pass `user_ids` to replace the assigned agents."
                    },
                    "response": []
                },
                {
                    "name": "Delete a sector",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/sectors\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/sectors\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the sector."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Owner-only. Conversations tagged with this sector keep their\nhistory but lose the tag (sector_id is set to null)."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Security",
            "description": "\nWorkspace-wide security \/ access toggles:\n - `require_two_factor` \u2014 every member must enable 2FA before the\n   panel grants access.\n - `agent_restricted_to_own_conversations` \u2014 agents see only their\n   own + unassigned conversations in the inbox. Off by default\n   (matches the helpdesk industry pattern of a shared inbox); on\n   is the multi-team \/ compliance choice.",
            "item": [
                {
                    "name": "Update the workspace security configuration",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/security-config",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/security-config"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"require_two_factor\":true,\"agent_restricted_to_own_conversations\":false}"
                        },
                        "description": "Toggling `require_two_factor` ON is gated on the owner having\ntheir own 2FA enabled \u2014 otherwise the owner could lock themselves\nout instantly. Turning it OFF has no such gate."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Support",
            "description": "\nThe customer side of in-app support: a workspace member opens a ticket\nand converses with Plixa staff. Auto-scoped to the caller's tenant by\nthe BelongsToTenant global scope on SupportTicket.",
            "item": [
                {
                    "name": "POST v1\/support\/tickets",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/support\/tickets",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/support\/tickets"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/support\/tickets\/{ticket_id}\/messages",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/support\/tickets\/:ticket_id\/messages",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/support\/tickets\/:ticket_id\/messages",
                            "variable": [
                                {
                                    "id": "ticket_id",
                                    "key": "ticket_id",
                                    "value": "16",
                                    "description": "The ID of the ticket."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/support\/tickets\/{ticket_id}\/close",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/support\/tickets\/:ticket_id\/close",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/support\/tickets\/:ticket_id\/close",
                            "variable": [
                                {
                                    "id": "ticket_id",
                                    "key": "ticket_id",
                                    "value": "16",
                                    "description": "The ID of the ticket."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/support\/tickets\/{ticket_id}\/reopen",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/support\/tickets\/:ticket_id\/reopen",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/support\/tickets\/:ticket_id\/reopen",
                            "variable": [
                                {
                                    "id": "ticket_id",
                                    "key": "ticket_id",
                                    "value": "16",
                                    "description": "The ID of the ticket."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Customer satisfaction rating \u2014 only once the ticket is solved\/closed.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/support\/tickets\/:ticket_id\/rating",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/support\/tickets\/:ticket_id\/rating",
                            "variable": [
                                {
                                    "id": "ticket_id",
                                    "key": "ticket_id",
                                    "value": "16",
                                    "description": "The ID of the ticket."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"rating\":1,\"comment\":\"n\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Team",
            "description": "",
            "item": [
                {
                    "name": "Create an invitation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/team\/invitations",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/team\/invitations"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"agent@plixa.app\",\"role\":\"agent\"}"
                        },
                        "description": "Owner-only. Returns the freshly issued invitation including the\none-shot `accept_url` so the panel can render a copy-to-clipboard\nbutton. After the response the token is hidden \u2014 losing it means\nre-issuing the invite."
                    },
                    "response": []
                },
                {
                    "name": "Resend the invitation email",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/team\/invitations\/:invitation\/resend",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/team\/invitations\/:invitation\/resend",
                            "variable": [
                                {
                                    "id": "invitation",
                                    "key": "invitation",
                                    "value": "14",
                                    "description": "Invitation id."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Owner-only. Queues the same InvitationCreated mailable that the\ninitial create() does \u2014 same accept_url, same expiry. Returns\nthe invitation with the link so the owner can also copy-paste\nit to another channel."
                    },
                    "response": []
                },
                {
                    "name": "Cancel a pending invitation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/team\/invitations\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/team\/invitations\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the invitation."
                                },
                                {
                                    "id": "invitation",
                                    "key": "invitation",
                                    "value": "14",
                                    "description": "Invitation id."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Owner-only. Accepted invitations cannot be cancelled \u2014 remove the\nuser from the workspace instead via MemberController::destroy."
                    },
                    "response": []
                },
                {
                    "name": "Remove a member",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/team\/members\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/team\/members\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the member."
                                },
                                {
                                    "id": "member",
                                    "key": "member",
                                    "value": "7",
                                    "description": "The user id."
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Owner-only. Unassigns any conversations that were attached to the\nremoved user (their messages stay). Owners can't remove themselves\n\u2014 they should transfer ownership first (out of MVP scope)."
                    },
                    "response": []
                },
                {
                    "name": "Accept an invitation",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/team\/invitations\/accept",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/team\/invitations\/accept"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"token\":\"aBcD1234\u2026\",\"name\":\"Lucia Pereira\",\"password\":\"super-secret-pw\"}"
                        },
                        "description": "Public \u2014 creates the user, attaches them to the tenant, marks the\ninvitation accepted, and returns a Sanctum token so the panel can\nsign them in immediately.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Two-factor authentication",
            "description": "\nEndpoints the user hits from \/account to set up, confirm, regenerate\nrecovery codes for, and disable their own TOTP second factor. All\nmutations require the current password \u2014 defence in depth against\nstolen session tokens.\n\nLayout:\n - GET    \/v1\/me\/2fa             \u2192 status (enabled, configured-but-not-confirmed)\n - POST   \/v1\/me\/2fa\/setup       \u2192 mint a fresh secret + otpauth URL\n - POST   \/v1\/me\/2fa\/confirm     \u2192 verify first code, return recovery codes\n - POST   \/v1\/me\/2fa\/recovery-codes \u2192 regenerate recovery codes\n - DELETE \/v1\/me\/2fa             \u2192 disable 2FA entirely",
            "item": [
                {
                    "name": "POST v1\/me\/2fa\/setup",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/me\/2fa\/setup",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/me\/2fa\/setup"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"password\":\"|]|{+-\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/me\/2fa\/confirm",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/me\/2fa\/confirm",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/me\/2fa\/confirm"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"code\":\"architecto\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "POST v1\/me\/2fa\/recovery-codes",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/me\/2fa\/recovery-codes",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/me\/2fa\/recovery-codes"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"password\":\"|]|{+-\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Revoke a single recovery code",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/me\/2fa\/recovery-codes\/revoke",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/me\/2fa\/recovery-codes\/revoke"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"password\":\"********\",\"code\":\"a1b2c3d4e5\"}"
                        },
                        "description": "For when an operator suspects ONE code leaked (left a printout\nsomewhere, sent it in a Slack DM by mistake) but wants to keep\nthe others valid instead of regenerating the whole list.\n\nPassword-gated, audit-logged. Returns the count of remaining\ncodes \u2014 the panel uses it to surface \"you have N codes left\"."
                    },
                    "response": []
                },
                {
                    "name": "DELETE v1\/me\/2fa",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/me\/2fa",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/me\/2fa"
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"password\":\"|]|{+-\"}"
                        },
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Waitlist",
            "description": "",
            "item": [
                {
                    "name": "Join the public waitlist",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/waitlist",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/waitlist"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"email\":\"founder@plixa.app\",\"locale\":\"en-US\",\"referrer\":\"https:\\\/\\\/news.ycombinator.com\\\/\"}"
                        },
                        "description": "Stores an email for early access. Plixa never sells this list. The\nlanding page (plixa.app) posts here from its hero and footer forms.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\"data\":{\"id\":42,\"email\":\"founder@plixa.app\",\"created_at\":\"2026-05-25T12:00:00+00:00\"},\"meta\":null,\"errors\":null}",
                            "name": "Added"
                        },
                        {
                            "header": [],
                            "code": 409,
                            "body": "{\"data\":null,\"meta\":null,\"errors\":[{\"code\":\"WAITLIST_EMAIL_ALREADY_REGISTERED\",\"message\":\"This email is already on the waitlist.\"}]}",
                            "name": "Already on the list"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Webhooks",
            "description": "",
            "item": [
                {
                    "name": "Handle a Stripe webhook call.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/webhooks\/stripe",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/webhooks\/stripe"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Webhooks (outbound)",
            "description": "\nOwner-only management of customer-facing webhook endpoints. Plixa\nfires `message.{inbound,outbound}` and `conversation.{created,\nupdated,deleted}` to every active subscribed endpoint, signed with\nHMAC-SHA256 (X-Plixa-Signature).\n\nThe endpoint secret is shown ONCE at create time. Storage is\nencrypted, the API never echoes it back \u2014 operators who lose the\nsecret rotate the endpoint instead.",
            "item": [
                {
                    "name": "POST v1\/webhook-endpoints",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/webhook-endpoints",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/webhook-endpoints"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "PUT v1\/webhook-endpoints\/{endpoint}",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/webhook-endpoints\/:endpoint",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/webhook-endpoints\/:endpoint",
                            "variable": [
                                {
                                    "id": "endpoint",
                                    "key": "endpoint",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "DELETE v1\/webhook-endpoints\/{endpoint}",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/webhook-endpoints\/:endpoint",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/webhook-endpoints\/:endpoint",
                            "variable": [
                                {
                                    "id": "endpoint",
                                    "key": "endpoint",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Fire a synthetic `webhook.test` delivery so the operator can\nverify their receiver wiring without waiting for a real message.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/webhook-endpoints\/:endpoint\/test",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/webhook-endpoints\/:endpoint\/test",
                            "variable": [
                                {
                                    "id": "endpoint",
                                    "key": "endpoint",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": []
                },
                {
                    "name": "Re-fire a previously-failed delivery",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/webhook-deliveries\/:delivery\/retry",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/webhook-deliveries\/:delivery\/retry",
                            "variable": [
                                {
                                    "id": "delivery",
                                    "key": "delivery",
                                    "value": "564",
                                    "description": ""
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Resets the delivery back to `pending`, zeroes the attempts\ncounter so the existing exponential-backoff schedule starts\nfresh, and queues a new DeliverWebhookJob with the same\npayload. Useful after an operator fixes the receiver \u2014 they\ndon't have to wait for another organic event to confirm.\n\nRefuses to act on deliveries that aren't in a terminal\n`failed` state (no point retrying a pending one \u2014 the job\nalready has it)."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Welcome message",
            "description": "\nOwner-defined greeting auto-sent the first time a contact reaches the\nworkspace. Unlike the AI configuration, this is available on every\nplan \u2014 no plan gate.",
            "item": [
                {
                    "name": "Update the welcome message configuration",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/welcome-config",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/welcome-config"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"message\":\"Hi! Thanks for reaching out \u2014 we usually reply within 15 minutes.\",\"enabled\":true,\"delay_seconds\":5}"
                        },
                        "description": ""
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Workspace configuration",
            "description": "\nTenant-wide settings every member is bound to:\n  - timezone (IANA, e.g. America\/Sao_Paulo). All scheduled features\n    (business hours, digests, SLA windows, \"today\" rollups) anchor\n    to THIS \u2014 never to the server fuso or the operator's browser.\n  - default locale (en | pt-BR | es). Used as the fallback UI\n    language for members who haven't set their own in \/account, and\n    as the language for transactional emails the workspace sends.\n\nOwner-only. Members see their personal locale override in \/account.",
            "item": [
                {
                    "name": "Update the workspace timezone + default locale + currency",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/workspace-config",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/workspace-config"
                        },
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"timezone\":\"Asia\\\/Yekaterinburg\",\"locale\":\"sr_BA\",\"currency\":\"architecto\"}"
                        },
                        "description": "Owner-only. The timezone field accepts only real IANA identifiers\n(validated against DateTimeZone::listIdentifiers) so a typo can't\nsilently corrupt every scheduled feature."
                    },
                    "response": []
                },
                {
                    "name": "Upload (or replace) the workspace logo",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/workspace-config\/logo",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/workspace-config\/logo"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "multipart\/form-data"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "formdata",
                            "formdata": [
                                {
                                    "key": "logo",
                                    "src": [],
                                    "type": "file"
                                }
                            ]
                        },
                        "description": "Owner-only. Stored on the shared public-image disk under a UUID key.\nPNG\/JPEG\/WebP, \u2264 1 MB \u2014 no SVG (XSS surface). Display size is enforced\nby the consumers (a fixed-height box), so any aspect ratio is fine."
                    },
                    "response": []
                },
                {
                    "name": "Remove the workspace logo. Owner-only.",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "v1\/workspace-config\/logo",
                            "query": [],
                            "raw": "{{baseUrl}}\/v1\/workspace-config\/logo"
                        },
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": ""
                    },
                    "response": []
                }
            ]
        }
    ],
    "auth": {
        "type": "bearer",
        "bearer": [
            {
                "key": "token",
                "type": "string"
            }
        ]
    }
}