Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Uploading HTML KB articles using REST API

Rajesh12
Kilo Contributor

Hi,

We have a requirement to upload all externally hosted knowledge base HTML files to service now. HTML files contains few references to images and links to PDF. I have couple of questions,

a. Using REST API(Table API), I was able to add new record into kb_Knowledge table, how do I move this knowledge base article to published state in workflow?

b. Using REST API(Table API), I was able to add new image into db_images table, but the added image record does not have any image attached to it. How do I attach the image to a record in db_images table or update the image file for record in db_images table.

 

3 REPLIES 3

SatheeshKumar
Kilo Sage
For first one you can create a business rule to publish the kb article if it is inserted by a rest source thanks Satheesh

Matt Thomas2
Mega Contributor

Hi, I found this article while looking for adding articles via API myself.  I'm curious if you ever had luck with the db_images table via API... from what I've found, I think you want to use the REST API (Attachment API) to upload images instead of db_image... the files will wind up in the sys_attachment table, not db_image, but you can reference them like 

<img src="/sys_attachment.do?sys_id={sysid_of_attachmentrecord}"/>

More info about Attachment API here: https://developer.servicenow.com/app.do#!/rest_api_doc?v=kingston&id=r_AttachmentAPI-POST

Hi Matt,

Yes, I was able to make it work.

a. First will be a post request to db_image table using TABLE API to create the image record in db_image table. Capture the sys_id from this request. This post request will contain actual image file name that you would use in src attribute of <img> tag.

b. Second request will be a post request with file contents to Attachment API with appropriate parameters in the query string,

{ServiceNow}/attachment/file?table_name=db_image&table_sys_id={imageSysId}&file_name=image"

 

table_sys_id will have the sys_id of the record in db_image table. 

file_name - This parameter is not the actual file name. It should always remain as "image", this indicates that attachment should be tied to image field for the record in db_image table.