Import departments via API

  • 20 June 2018
  • 2 replies
  • 50 views

I need to import a huge list of companies in FreshService. It is possible to import via a API in JSON

I use what is provided bij FreshService:


{

    "itil_department":{

        "name":"SuperNova",

        "description":"Spaceship Manufacturing Company",

        "department_users_attributes":{

            "head_id":"34"

        }

    }

 

}

It is possible to put one company at the time, but I would like to put many of them in at once. If I try to do that, is fails. Somebody an idea how to solve this?


Kind regards


This topic has been closed for comments

2 replies

Below is inelegant but working PowerShell script (I'm using version 5.0, lower versions would probably work, how low I'm not sure). Variable $depts holds multiple JSON body strings, foreach iterates over each using RESTful API (v1) to create department. Illustrative example only, scaling this up to hundreds/thousands of departments would be a pain, but $depts could be read from an external file of almost any type with appropriate changes to rest of script.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$thekey = [convert]::ToBase64String([text.encoding]::ASCII.getbytes('yourApiKey'))
$depts = '{"itil_department":{"name":"SuperNova1","description":"Spaceship Mfg Company1", "head_id":"500001"}}','{"itil_department":{"name":"SuperNova2","description":"Spaceship Mfg Company2", "head_id":"500002"}}','{"itil_department":{"name":"SuperNova3","description":"Spaceship Mfg Company3", "head_id":"500003"}}'
$headers = @{}
$headers.Add('authorization', ("Basic {0}" -f $thekey))
$headers.Add('content-type', 'application/json')
$url = 'https://yourCompany.freshservice.com/itil/departments.json'
foreach ($d in $depts) {
Invoke-RestMethod -Method post $url -Headers $headers -Body $d
}



What is VIA problem? any way.