how to use soap step in flow designer correctly

Lior grinberg1
Tera Contributor

Hi Friends,

I’m trying to call the ServiceNow Table SOAP API (incident / problem) from Flow Designer using the SOAP step, and I’m stuck.

What I’m trying to do

  • Use Flow Designer → SOAP step

  • Call incident.do SOAP API (get operation)

  • Then call problem.do SOAP API using the same credentials/instance

So, what I did is I first created a soap message 

  • Created SOAP Message from WSDL named soap_incident:

    https://<instance>.service-now.com/incident.do?WSDL
  • Authentication type: Basic

  • SOAP Message Functions auto-generated:

    • get

    • getRecords

    • insert

    • update

    • delete, etc.

then in the flow I created a soap step

 

and the problem is:

  • The SOAP step returns HTTP 200

  • But the response body is HTML, not SOAP

  • The HTML looks like the ServiceNow UI / Guest page

 

If I'm changing the "Connection Alias" to this URL https://<instance>.service-now.com/incident.do?SOAP
it is working, but then I cannot call to another soap step with https://<instance>.service-now.com/problem.do?SOAP.
because I cannot create another Connection Alias with the same domain.
So, my question is what is the correct setup?

Thanks for anyone that tries to answer 🙂

Lior Grinberg

 

 

 

 

 

5 REPLIES 5

Its_Sagnic
Mega Guru

HI @Lior grinberg1 ,

I am adding the step by step solution for you.

Step-by-Step Solution
 
1. Configure the Connection Record (The "Shared" Part)
  • Connection Alias: Keep your existing alias (e.g., ServiceNow_SOAP_Alias).
  • Connection Record: Edit the Connection record linked to this alias.
  • Connection URL: Set this to the Base URL only: https://<instance>.service-now.com.
  • Credential: Ensure your Basic Auth credentials are attached here. 
 
2. Configure Action 1: Get Incident
  1. In Flow Designer, open your Action and add a SOAP Step.
  2. Connection: Select "Use Connection Alias" and pick your ServiceNow_SOAP_Alias.
  3. Build Request: Select Manually (this is the key to unlocking the path override).
  4. Endpoint: This field will now be editable. Type: /incident.do?SOAP.
    • Note: Because the Connection Alias provides the base domain, this path is appended to it at runtime.
  5. SOAP Action: Set to www.service-now.com.
  6. Envelope: Paste the XML envelope for the get operation. Use data pills from your Action Inputs to map variables like the sys_id.
 
3. Configure Action 2: Get Problem
  1. Create a second Action (or another SOAP step in the same action).
  2. Connection: Use the same ServiceNow_SOAP_Alias.
  3. Build Request: Select Manually.
  4. Endpoint: Type: /problem.do?SOAP.
  5. SOAP Action: Set to www.service-now.com.
  6. Envelope: Paste the XML envelope for the Problem get operation.
 
Summary Checklist for Success
  • WSDL Loading: You can still use the "From WSDL" option initially to generate your XML envelopes, but once generated, switching to Manually allows you to explicitly define the /table.do?SOAP path.
  • Authentication: Ensure the user in your Credentials has the soap_query or itil role to access the Incident/Problem tables via SOAP.
  • HTTP Header: If you still see HTML, manually add an HTTP Header in the SOAP step: Content-Type: text/xml. 

If the solution is helpful for you please mark it as helpful.
Regards,
Sagnic

HI,

Thanks for the details answer.

I have a problem in step 2 I don't have a field to change the endpoint.

here is a screen shot:

Liorgrinberg1_0-1767981847531.png

Please help me with what is missing.

Thanks,

Lior Grinberg

Hi @Lior grinberg1 ,

You need to chnage the value in Request Details part ...

Connection Details will come based on connection.

so try the steps below.

How to enable and set the Endpoint field
  1. Change the "Build Request" Method:
    • In your screenshot, locate the Build Request field under the Request Details heading.
    • Change the value from From WSDL to Manually.
  2. The "Endpoint" Field Will Appear:
    • Once you select Manually, a new field named Endpoint will appear, and the SOAP Action and SOAP Envelope fields will become editable.
  3. Set Your Custom Endpoint:
    • Enter the specific path of your desired endpoint in the new Endpoint field.
    • Note: The URL you set in the Connection URL field of the Connection Alias (e.g., https://<instance>.service-now.com in your image) is the base URL. The value you enter here is appended to that base URL.
    • Example: To connect to the Incident SOAP API on your instance, you would type /incident.do?SOAP in this new Endpoint field.
  4. Manually Configure Request Details:
    • You will now also need to manually enter the correct SOAP Action and paste the necessary SOAP Envelope XML payload for your specific operation (e.g., get, insert, update). 
By following these steps, you gain full control over the specific endpoint your SOAP action targets, allowing for more flexible integrations beyond what is automatically defined in the WSDL. 




HI Sagnicdas,

In the screenshot you can see that the build envelope is set to Manually.

Thanks,

Lior Grinberg