We have requirement to integrate servicenow with iiq for ticket creation in SNOW

Hi,
Can anyone help how to achieve this requirement in Sailpoint step by step configurations?

There are multiple ways to do this, one way is to call SNOW APIs in the workflow for e.g. when a user request a role or during JML, add a step that calls the SNOW APIs to create ticket.

refer Integrating SailPoint with ServiceNow Service Desk

If you need to have fully customized objects in ServiceNow, including tickets like Requests (REQ), RequestItems (RITM) or Service Catalog Tasks (SCTASK), then you can of course use ServiceNow APIs. The way we have integrated with SNOW is using SNOW import tables - the standard way to talk to SNOW.
Full working sample is not possible using forum post, because needs also import table on SNOW side and explaining all this in single forum post is way too much.

But assuming you have API endpoint created in SNOW which can receive ticket info, for example SNOWbaseuri+“/api/now/import/u_your_custom_sctask” then posting anything is just as simple:

public String getSnapBase(SailPointContext context)
  {
    // custom way to read info from Configuration object
    //return getServiceNowConfiguration(context, "baseuri");
  }
public void buildPostConnection(SailPointContext context, HttpURLConnection conn)
  {
    String basicAuth = getAuthHeader(context);
    conn.setRequestProperty ("Authorization", basicAuth);
    conn.setDoOutput(true);
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/json");
    conn.setRequestProperty("Accept", "application/json");
  }
private String saveServiceCatalogTask(SailPointContext context, Map sctaskattributes)
  {
  	String jsonResponse = "";
    try
    {
      String baseuri = getSnapBase(context);
      URL url = new URL(baseuri+"/api/now/import/u_your_custom_sctask");
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      buildPostConnection(context, conn);
      OutputStream os = conn.getOutputStream();

      String postbody = buildPostBody(sctaskattributes);	

      OutputStream os = conn.getOutputStream();
      os.write(postbody.getBytes());
      os.flush();
      os.close();

      int responseCode = conn.getResponseCode();
      if (responseCode == 200) {
        InputStream inputStr = conn.getInputStream();
        String encoding = conn.getContentEncoding() == null ? "UTF-8" : conn.getContentEncoding();
        jsonResponse = IOUtils.toString(inputStr, encoding);
      }

      conn.disconnect();
    } catch (Exception ex) {
      // libLog.error(ex);
    }
    return jsonResponse;
    
  }
public String createServiceCatalogTask(SailPointContext context, String ritmname, String assignmentgroup, String assignee, String shortdesc, String description)
  {
  	HashMap attributes = new HashMap();
  	attributes.put("u_ritm", ritmname);
  	attributes.put("u_group", assignmentgroup);
  	if (assignee != null) {
  		attributes.put("u_assignee", assignee);
  	}
  	attributes.put("u_short_description ", shortdesc);
  	attributes.put("u_description", description);
  	attributes.put("u_state", "1"); // Open
  	
    return saveServiceCatalogTask(context, attributes);
    
  }

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.