Private preview: This feature is available in private preview and is off by default. Contact support to join the program or learn more.
BlueConic offers an Agent-to-Agent (A2A) server that follows the open A2A protocol. Your own agents, such as orchestration frameworks, internal copilots, and third-party AI agents, can discover BlueConic agents and send them tasks directly, without custom integration code.
Two agents are available:
Search agent: Finds BlueConic objects of a given type, such as segments, listeners, connections, plugins, or users, with an optional free-text filter. Results include only objects the application has permission to see, and counts are exact.
Growth Play Advisor agent: Recommends growth plays for a stated marketing goal, based on the data and current setup of your tenant. It doesn't change anything.
Note: Both agents are read-only, and every result follows the application's scopes and user permissions.
Before you begin
Ask your BlueConic representative or support to turn on A2A for your tenant.
Make sure you have permission to create an application in Settings > Access management > Applications.
A2A works alongside the BlueConic MCP server. Your agents can call the MCP tools directly, hand tasks to the A2A agents, or both. See BlueConic Model Context Protocol (MCP).
Give an application access to A2A agents
Go to Settings > Access management > Applications.
Open an application, or select Add application.
Under OAuth 2.0 flow, select Client credentials flow.
Under A2A agents, select the agents the application can call: Search agent, Growth Play Advisor agent, or both.
For the Search agent, also grant the read scope for each object type it queries, such as Segments or Listeners.
Set a Run as user. A2A calls run as this user and follow that user's BlueConic permissions.
Turn the application ON, and select Save.
Copy the Client ID and Client secret for your agent's configuration.
Discover the agents
Each agent publishes an Agent Card that describes what it does. Point your agent at the catalog, or at a specific card:
Catalog of all agents:
https://tenantname.blueconic.net/.well-known/agent-card.json/catalog
Search agent:
https://tenantname.blueconic.net/.well-known/agent-card.json/search
Growth Play Advisor agent:
https://tenantname.blueconic.net/.well-known/agent-card.json/advisor
The default card, https://tenantname.blueconic.net/.well-known/agent-card.json, points to the Search agent.
Sign in
Request an access token with the client ID and client secret of your application:
curl -X POST "https://tenantname.blueconic.net/rest/v2/oauth/token" \
-d grant_type=client_credentials \
-d client_id="<client-id>" \
-d client_secret="<client-secret>"
The response contains an access_token and an expires_in value. Request a new token before the old one expires.
Send the token in the header of every A2A request:
Authorization: Bearer <access_token>
Send tasks to an agent
Send tasks to the A2A endpoint of each agent:
/rest/v2/a2a/search
/rest/v2/a2a/advisor
Send requests with POST, using JSON-RPC. Use the SendMessage method to send a task, and GetTask to check on it.
Wait for the answer, stream progress, or check back later. A request that waits for the answer stops waiting after about 30 seconds and returns the task in its current state. BlueConic keeps task state for seven days, so your agent can resume a task that needs more input. Tasks are kept separate per application.
Search agent
Send one JSON data part with these fields:
type(required): the object type. See the list below.prompt(optional): a natural-language filter, for exampleGDPR.limit(optional): the maximum number of objects to return.
Example data part:
{"type": "segment", "prompt": "GDPR", "limit": 5}To count the profiles in a segment, use profileCount and name the segment in prompt.
Supported values for type, exact and case-sensitive: segment, listener, connection, dialogue, plugin, user, role, channel, lifecycle, objective, contentstore, notebook, model, property, timeline_event_type, timeline_event_rollup, grouptype, tracker, and profileCount.
Note: Without a filter, the Search agent returns the same result every time. It uses a large language model (LLM) only to interpret a free-text filter, so filtered searches are best-effort.
Growth Play Advisor agent
Send one text part that describes your goal. Example requests:
What growth plays should I run for cart abandonment?
How can I improve conversion for new visitors?
Which segments should I target for a re-engagement campaign?
The Growth Play Advisor can take several minutes. Check on the task with GetTask until it's done. The answer is in the artifact named response.
Example requests
These calls work from any HTTP client. Replace tenantname with your tenant, and $TOKEN with your access token (see Sign in).
Call the Search agent
curl -X POST "https://tenantname.blueconic.net/rest/v2/a2a/search" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "SendMessage",
"params": {
"message": {
"role": "ROLE_USER",
"messageId": "7f1c2b9e-0000-4000-8000-000000000001",
"parts": [ { "data": { "type": "segment", "prompt": "GDPR", "limit": 5 } } ]
},
"configuration": { "returnImmediately": false }
}
}'
The response holds the task. The Search agent's answer is in the artifact named results:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"task": {
"id": "9195f21e-12a9-4fa8-960a-faaea085b7a7",
"status": { "state": "TASK_STATE_COMPLETED" },
"artifacts": [ {
"name": "results",
"parts": [ { "data": {
"type": "segment", "count": 1, "exact": true,
"interpretedAs": "name contains \"GDPR\"",
"objects": [ { "id": "374342b9-c614-4de5-91c1-52a3de0a5775", "name": "GDPR visitors" } ]
} } ]
} ]
}
}
}Check on a task
Send GetTask to the endpoint of the agent that owns the task:
curl -X POST "https://tenantname.blueconic.net/rest/v2/a2a/advisor" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -H "Accept: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"GetTask","params":{"id":"<task-id>"}}'
Repeat the call every few seconds until status.state is TASK_STATE_COMPLETED.
Next steps
Decide which of your agents need the Search agent, the Growth Play Advisor agent, or the MCP tools, and grant only those.
Check the Run as user's permissions, because they limit what the Search agent returns.
FAQ
Can A2A agents create or change objects?
No. Both agents are read-only.
Can a signed-in user call an A2A agent?
No. A2A supports client credentials applications only. Calls run as the application's Run as user.
How current are profile counts?
Profile counts reflect the latest index update, not real time.
Are Agent Cards signed?
No. Agent Cards are served unsigned.
Does A2A support push notifications or other transports?
No. Check the task status instead of waiting for a push notification. The only transport is JSON-RPC.
