warren_chan
ServiceNow Employee

This article walks through the setup for ServiceNow External Agents where the external agent (A2A client) invokes a ServiceNow AI agent (A2A server) over Google A2A protocol in an asynchronous communication channel.

 

Requirements

  • A2A client is communicating over Google A2A 0.3.0 specification.
  • ServiceNow instance is running Now Assist AI Agents 6.0.x+ (December 2025 release).
  • This example assumes the A2A server is running in asynchronous communication mode. 

Confirm that ServiceNow External Agents is set to asynchronous

  • Go to AI Agent Studio > Settings > External AI agents > Discoverability
  • Set Communication mode to Asynchronous

Screenshot 2026-03-02 at 9.28.37 AM.png

  • Alternatively, go to the Messaging Channels [sys_cs_channel] table
    • Look for AI Agent A2A Channel
    • Set to Synchronous to false

From your external AI agent (A2A client), attempt to invoke your ServiceNow AI Agent

Screenshot 2026-03-02 at 9.32.54 AM.png

  • Discover your ServiceNow AI agent
  • Authenticate with your ServiceNow AI agent (most likely necessary in some way)

Screenshot 2026-03-02 at 9.39.58 AM.png

  • Send a message through the message/send method. You will probably get an error stating that "Push notification is not supported":

Screenshot 2026-03-02 at 9.41.37 AM.png

  • In the request payload (outgoing from your A2A client), look for your push notification URL. It should be in the pushNotificationConfig block of the message/send request. Take note and copy it:
"jsonrpc": "2.0",
  "method": "message/send",
  "params": {
    "configuration": {
      "acceptedOutputModes": [
        "application/json"
      ],
      "historyLength": 0,
      "pushNotificationConfig": {
        "url": "https://<your-a2a-client-host>.us-central1.run.app/a2a/callback/incident-helper-agent-efcc9526",
        "token": "incident-helper-agent-efcc9526",
        "authentication": {
          "schemes": [
            "Bearer"
          ]
        }
      }
    },

 

Create External Agent Callback Registry

  • In ServiceNow, go to the External Agent Callback Registry [sn_aia_external_agent_callback_registry] table.
  • Select New button
  • Enter the push notification URL from the A2A client into URL field.
  • Save the record.
  • If you left the Connection and Credential Alias field blank, a new Connection Alias record should be created automatically. It should work as-is if your A2A client does not require authentication, but if it does require authentication, then edit your associated Connection record, and add a Credential record to provide authentication information.

Screenshot 2026-03-02 at 9.51.01 AM.png

  • Select the Verify URL button.
  • After the verify URL process, the State changes to Verified.

Screenshot 2026-03-02 at 9.53.06 AM.png

  • Note that you will need to repeat this process for every external AI agent with a separate callback endpoint and push notification URL.

Resume your conversation from your A2A client

  • Resend a new message with the message/send method.
  • The asynchronous message handling should now be in effect:

Screenshot 2026-03-02 at 9.55.53 AM.png

 

Comments
HarshaSeetha
Tera Contributor

Hi @warren_chan ,

Thanks for the information and for sharing the steps in the article. I’m trying to invoke/execute a ServiceNow AI Agent asynchronously via A2A from an external client, and for testing I’m using POSTMAN.

 

I have included the Instance Specifications below
Platform Version : Yokohama Patch 11
Application Version : Now Assist AI Agents, Version 6.0.23

 

I followed the same steps mentioned in the article to invoke the AI Agent asynchronously. In my instance, the Communication Mode is set to Asynchronous, the AI Agent A2A Messaging Channel is also set as asynchronous(I have Set Synchronous to false), and in AI Agent Studio the “Allow third party to access this agent” option is enabled. My Callback URL (Push Notification URL) is added and shows Verified in the External Agent Callback Registry. The A2A client currently doesn’t require authentication, so no credentials are configured in the connection record. 

 

I have attached the image of the External Agent Callback Registry where the URL is verified.

Screenshot 2026-03-06 213717.png

 

 

In the agent card of the AI Agent, under capabilities the pushNotifications is enabled

Screenshot 2026-03-06 214823.png

 

 

However, when I try invoking the AI Agent from POSTMAN, I keep getting the response "Push Notification is not Supported" with status code 400 stating Bad Request. I’ve also attached the request and response payload screenshot below for reference.

Screenshot 2026-03-06 212956.png

 

Could you please help me understand what might be causing this or if anything else needs to be configured or if something is missing in the request payload?

 

Thank you for your support in advance and please keep me notified if any further details required.

 

 

warren_chan
ServiceNow Employee

@HarshaSeetha we may have a bug on our side, trying to work through it quickly. More to come. Thanks for trying the feature so soon 😂

warren_chan
ServiceNow Employee

Update: The issue on the validate URL not working should be addressed in Now Assist AI Agents 7.1.x, to be released next month.

Rahul Chand
Tera Contributor

Hi @warren_chan ,

 

I am currently setting up an Agent-to-Agent (A2A) integration between two ServiceNow instances. I am acting as the secondary agent and have run into a roadblock.

Steps Taken:

  1. Successfully verified the External Agent Callback Registry URL in the secondary instance using the required authentication.

  2. Attempted to trigger the send/message method from the host instance external agent.

  3. As a troubleshooting step, I re-discovered the secondary agent after verifying the URL.

The Issue: Despite the successful verification and re-discovery, triggering the send/message method consistently returns the following error: "Push Notification is not supported"

Could you please point me in the right direction to resolve this?

Version history
Last update:
3 weeks ago
Updated by:
Contributors