Onboard the phone number
The request body is optional. Includecatalog_id only when the agent should use a specific Meta catalog.
API reference: POST Onboard Agent · GET Get Settings
403 usually means that product access or terms acceptance is incomplete. A 404 on later phone-scoped operations can mean that the Phone Number ID is incorrect or that the same YCloud tenant does not own an active Public API agent binding.
Configure handoff and follow-up behavior
Define these messages and timings as part of the agent configuration, before testing the handoff workflow. API reference: GET Get Settings · PUT Replace Settingsfollowup_interval_in_seconds must be one of 0, 300, 900, 1800, 3600, 7200, 28800, or 86400. When handoff.message_selection is CUSTOM, include handoff.message.
YCloud updates only the settings included in the request. Omit never_say_phrases to preserve the current list. Send an empty array to clear it, or a non-empty array to replace the complete list.
Configure business information
Use business information for stable facts that apply across customer questions. API reference: GET Get Business Info · PUT Replace Business Info · DELETE Delete Business InfoAdd frequently asked questions
Keep one customer intent per FAQ. Update or delete stale answers instead of adding near-duplicates. API reference: GET List FAQs · POST Create FAQ · GET Get FAQ · PATCH Update FAQ · DELETE Delete FAQAdd websites and files
Use websites and files only when their content is current and suitable for customer answers. Website API reference: GET List Websites · POST Create Website · GET Get Website · PATCH Update Website · DELETE Delete Website File API reference: GET List Files · POST Upload File · GET Get File · DELETE Delete File Create a website source with itsurl. Use /websites/{websiteId} to retrieve, update, or delete it. Website responses can include crawl_status, pages_crawled, last_crawled_at, and created_at. Crawling is asynchronous, so a successful create response does not mean every page has been indexed.
Upload a file as multipart/form-data with one part named file:
/files; retrieve or delete one at /files/{fileId}.
Add behavioral skills
Skills explain how the agent should handle a task. Knowledge explains what is true. API reference: GET List Skills · POST Create Skill · GET Get Skill · PATCH Update Skill · DELETE Delete Skillchannel, created_at, and string metadata.
Give each skill one objective. State when to use it, put mandatory rules before examples, and define what to do when information is missing. Keep volatile facts in business information, FAQs, websites, or files.
Add UI Skills
UI Skills control which rich WhatsApp components the agent can present. Behavioral skills define how the agent should handle a task. API reference: GET List UI Skills · POST Create UI Skill · GET Get UI Skill · PATCH Update UI Skill · DELETE Delete UI Skill
Supported component types are
carousel_quick_reply, carousel_url, cta_url, flow, image, interactive_list, interactive_reply_buttons, location, and location_request.
The update endpoint changes only title, status, and instruction. Create a new UI Skill if you need a different component type or Flow association. List requests support before, after, and limit. Continue pagination while paging.next is present. Response timestamps are Unix epoch seconds.
Add connectors and tools only when needed
A connector defines an external HTTP service or a remote MCP server. A tool defines one operation the agent can call on that connector. Do not add either resource when static knowledge is sufficient.Configure the connector
Connector API reference: GET List Connectors · POST Create Connector · GET Get Connector · PATCH Update Connector · POST Refresh MCP Connector Tools · DELETE Delete Connector Credential API reference: PUT Upsert API Key · PUT Upsert OAuth Credentials · PUT Upsert Certificatename, description, base_url, and auth_type are required for create and update requests. Standard authentication types are OAUTH2_CLIENT_CREDENTIALS, API_KEY, and NONE. Meta can reject another contract value that is not enabled for the account.
For API-key authentication, inject values into headers, query_params, or body_params. Every item requires non-blank field_name and value; prefix is optional. At least one item must be present.
OAuth client credentials require token_url, scopes_to_request, client_id, and client_secret. When supplied, token_request_content_type must be application/x-www-form-urlencoded or application/json. For mTLS, provide PEM text in client_certificate and client_key; ca_certificate is optional. Never log credential request bodies.
Use /connectors to list or create connectors. Use /connectors/{connectorId} to retrieve, update, or delete one. Replace credentials through its /credentials/apiKey, /credentials/oauth, or /credentials/certificate subresource.
For an MCP connector, call /connectors/{connectorId}/refreshMCPTools with the Meta Connector ID returned by the Connector API to ask Meta to rediscover its tools. Send no request body. HTTP 200 returns the current connector, but it does not always mean discovery succeeded. Check mcp_tool_sync.status: READY means discovery completed, PENDING means it is still in progress, and ERROR means remote discovery or provisioning failed. The operation has no idempotency key. Do not retry it automatically; after a timeout, retrieve the connector because the refresh outcome is uncertain.
Define tools
Tool API reference: GET List Connector Tools · POST Create Connector Tool · GET Get Connector Tool · PATCH Update Connector Tool · DELETE Delete Connector Tool
Create and list tools at
/connectors/{connectorId}/tools. Retrieve, update, or delete one at /tools/{toolId}.
Parameter definitions include a data type, human-readable description, required flag, and optional binding. A binding can provide a fixed value, macro, or runtime input.
Create and update requests require name, description, request_definition, and user_auth_required. A request definition requires method and path. A body requires content_type=application/json and a params object. When supplied, user_auth_action_config requires user_action_tool_type (auth or refresh) and user_auth_token_path; expires_at_type must be absolute or relative_seconds. Invalid connector or tool definitions return HTTP 400 without being forwarded upstream.
Transform tool responses
A non-nulltransformation_spec requires version=1 and steps, with at most five ordered steps.
Each step requires kind. Optional target and params accept strings or null; params contains
a JSON object encoded as a string. A math expression supports at most four nested levels.
Supported kinds are allowlist, case, catalog, decorate_url, dedupe, dehydrate, filter,
first_nonempty, first_nonnull, first_nonzero, format, html_escape, lookup, math,
proxy_image, reshape, shadow_allowlist, string_replace, and truncate.
On create, omission or null means no transformation. On update, these three inputs differ:
WHATSAPP_PHONE_NUMBER, WHATSAPP_PHONE_NUMBER_NATIONAL,
WHATSAPP_IDENTITY_HASH, WHATSAPP_CURRENT_STATUS_ID, WHATSAPP_BSUID, USER_MESSAGE,
WHATSAPP_CONVERSATION_ID, WHATSAPP_MESSAGE_ID, INSTAGRAM_IGSID, and
INSTAGRAM_CONVERSATION_ID. Accepting an Instagram macro does not enable Instagram entities
or guarantee its value for a WhatsApp consumer.
Check MCP discovery state
MCP uses the same endpoint and authentication fields. A successful connector response can containmcp_tool_sync.status=ERROR; this means tool discovery failed. Creating a connector does not
establish that tools are ready. First discovery timing and MCP-specific editing restrictions have
not been verified. Use the refresh operation above when Meta needs to rediscover the connector’s tools.
Next: Test and evaluate
Validate responses and representative business scenarios.

