Create UI skill

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Request parameters

ParameterTypeRequiredInDescription
AuthorizationstringYesHeaderPartner app token, sent raw. Bearer <token> is also accepted.
Content-TypestringYesHeaderapplication/json
appIdstring (uuid)YesPathPartner Portal app id. Stands in for Meta's entity_id.
titlestringYesBodyLowercase letters, digits and hyphens; no leading or trailing hyphen. Pattern ^[a-z0-9]+(-[a-z0-9]+)*$.
component_typestringYesBodyOne of: carousel_quick_reply, carousel_url, cta_url, flow, image, interactive_list, interactive_reply_buttons, location, location_request.
statusstringYesBodyOne of: enabled, disabled.
instructionstringYesBodyWhen and how the agent should use the component.
flow_idintegerNoBodyRequired when component_type is flow, rejected otherwise. The flow must be published before the skill can be enabled.

Example request

curl --location --request POST 'https://partner.gupshup.io/partner/app/<appId>/bizai/agent-ui-skills' \
  --header 'Authorization: <PARTNER_APP_TOKEN>' \
  --header 'Content-Type: application/json' \
  --data '{
  "title": "quest-product-link",
  "component_type": "cta_url",
  "status": "enabled",
  "instruction": "When user asks about Meta Quest, send CTA button"
}'

Response parameters — 201

ParameterTypeDescription
idstringResource id. Meta pfbid… id.
titlestringName of the skill.
component_typestringOne of: carousel_quick_reply, carousel_url, cta_url, flow, image, interactive_list, interactive_reply_buttons, location, location_request.
statusstringOne of: enabled, disabled.
instructionstringWhen and how the agent should use the component.
flow_idintegerWhatsApp Flow id. Only for component_type flow.
created_atintegerCreation time, Unix seconds.
updated_atintegerLast update time, Unix seconds.

Example response — 201 Created

{
  "id": "pfbid0UiSkillExampleId",
  "title": "quest-product-link",
  "component_type": "cta_url",
  "status": "enabled",
  "instruction": "When user asks about Meta Quest, send CTA button",
  "created_at": 1789630852,
  "updated_at": 1789630852
}

Error responses

400 Bad Request — The app is not live, or WASS does not consider it live.

{
  "message": "App is not live.",
  "status": "error"
}

400 Bad Request — The app has no phone number attached. Checked before the live check.

{
  "message": "Phone id not found for the given App",
  "status": "error"
}

401 Unauthorized — Authorization is missing or invalid, belongs to another app, or appId is unknown or not a UUID.

{
  "status": "error",
  "message": "Unauthorised access to the resource. Please review request parameters and headers and retry"
}

405 Method Not Allowed — Any method other than GET, POST, PUT or DELETE, e.g. PATCH.

{
  "status": "error",
  "message": "Request method 'PATCH' is not supported"
}

429 Too Many Requests — More than 30 /bizai/** requests in 60 seconds for this app. The 31st is rejected.

{
  "status": "error",
  "message": "Too Many Requests"
}
Path Params
uuid
required

Partner Portal app id. Stands in for Meta's entity_id.

Body Params
string
required
^[a-z0-9]+(-[a-z0-9]+)*$

Lowercase letters, digits and hyphens; no leading or trailing hyphen.

string
enum
required
string
enum
required
Allowed:
string
required
integer

Required when component_type is flow, rejected otherwise. The flow must be published before the skill can be enabled.

Responses

429

Per-app rate limit exceeded. Retry after the 60-second window.

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json