How to Bulk add Organizations and Customers in Service Desk Cloud?

I have read this fairly limited article and can find no other more detailed articles - https://confluence.atlassian.com/display/CONFEVAL/JIRA+Service+Desk%3A+Bulk+Add+Customers and it suggests that a bulk add of Customers is possible via the UI by pasting in a CSV file.  I say seems to, because of this brief comment "Alternatively, you can invite customers in bulk, adding multiple emails at once when inviting. You can copy/paste from a .csv, as they should parse into the invite window."  Key word there is "should".

Using the UI to do a .CSV file import just seems like a kludge, is there really no import from file option?

That article does not meet my goals, which are:

  1. Bulk create create a new Organizations, along with the associated Customers (what I'd call contacts).  This would be a One to Many relationship.  One Organization with Multiple Customers, and allow me to have a long list of Organizations.
  2. It also seems that this will immediately invite each Customer to the portal.  Is that true?  What is needed is that they are all created with NO emails being sent.  This would allow us to review them prior to the invite email being sent out.  Secondly it would allow us to invite a subset of the imported Customers on a phased roll out approach.  

Hopefully, someone will point me to how to do both of these (#1 being the most important).

Many thanks in advance!

Michael

 

4 answers

1 accepted

4 votes
Jack Brickey Community Champion Oct 19, 2016

Michael,

if you have all of the customer's emails in a spreadsheet simply select them all, copy and paste into your "add customer" pop up. you can do the same to add customers into an Organization you created. At least it worked for me.

Let me make sure I understand what currently worked for you based on that.  The Organizations need to be manually created?  Once they exist, then the list of Customers can be imported via the UI?

Or is there a way in the xls (or CSV) to specify which Organization they belong to?

Did that immediately send them an invite email?

Jack Brickey Community Champion Oct 19, 2016

Yes, manually created. See if the following works.

If you have a spreadsheet that has all the customers listed AND if you have the organization, they belong to then do the following:

  1. Manually add the organizations in JSD project via customer page>Add organizations. I expect there are not that many.
  2. sort your spreadsheet by organization and copy all user in say Org-A
  3. in JSD go to the customer page and click Add customers
  4. in the pop up paste the customers and then choose which org they will go into.
  5. repeat 3-4 for each Organization you have defined.

I believe invites are sent when you use "Add customers". I suggest you test adding a single customer to verify that if it is important.

Important: If you do not want email notifications to be sent to all users in an organization when a request is created then before doing the above disable this feature - Project> Project Settings> Customer Notifications> Organization added (edit and disable this)

Jack Brickey Community Champion Oct 19, 2016

BTW, if the customers already exist in the JSD project then you can add them to the organization in a similar copy&paste means. Just select the Organization in the customer list and then select Add customers on the organization page. What happens is that these customers are moved out of the generic customer list and 'into' the organization.

Thanks for that last response for adding already created customers to an org. Was trying to figure this out for a while!

I am in the same position and from my research it would appear this new feature of Organisations has been very poorly implemented:

 

  • Organisations are per service desk project. They do not carry across projects, so we would need to set up 2000 customers by hand separately for each of our three service desk projects.
  • There is no LDAP integration
  • There is no API
  • There is no CSV import
  • There is no integration to parts of JIRA outside ServiceDesk. Even the user profile page has no indicator for the organisation.

At this point, my opinion is that this new feature is worse than useless. Why worse? Because now plugin developers will shy away from offering functionality in this area, in case Atlassian step on their toes.

Does anyone know if there is a ticket open to request these features? LDAP integration is super important.

Susan Hauth Community Champion Sep 01, 2017

Found one JSDCLOUD-1829

Has the situation with this improved at all?  We are migrating over and I'm gobsmacked that there is no way to import users linking them to their appropraite ORG and Full Name.  As well as being able to turn off notifications/invites to the users after you add them.

There has to be a better way.  As stated in the last reponse, there is no manner in which to import this essential data.   Crazy.

 

Here's a script I wrote last night to bulk import ~400 customers from ~50 different organizations and put them into the right service desk / organizations.

It's a bit rough but it did the job and was much easier than doing every customer and organization by hand. Feel free to tweak / improve it.

https://gist.github.com/iokiwi/25f7b5525e8bb542dc44ac1fa02918ef

The script is based of these api docs which are current marked experimental but worked in the cloud just fine.

https://docs.atlassian.com/jira-servicedesk/REST/3.6.2/

https://developer.atlassian.com/cloud/jira/service-desk/rest/#about

Thank you Simon!  

I'll give this a shot.  When you used the API to do all this do you know if their system still sent out notification emails to all the customers as they were added?

Looking further I see that the docs stipulate that invites are not sent.  This should work perfectly for me.   Thanks again.  Now if we could only set the customer language preference via the API I'd be golden :)

Cheers.

No worries. I wonder if you can see the customer language preference in the JSON returned by any kind of GET request. I'm willing to bet if you can see it in a GET you can set it in a POST. There may be something undocumented. I might look into it tomorrow

Hey Larry,

I was working with one of our developers to use this with Jira Service Desk standalone server and found several issues with the script. 

First of all, in server, the experimental header is 

X-ExperimentalApi: opt-in

I also realised that I have not implemented the create_organisation() method and need to add an additional step to add the organisation to the service desk. I will update the script shortly.

Is there an easier way to turn off the notifications? Besides having to run the script, was the script tried on Standalone Server version?? I currently have all the organizations added, and am currently adding customers to the Org, but I am not live, and do not want to send the customers emails, because they cannot access the site. Please advise.

Same issue here - we like to prepare everything before the official go-live and do not want to send any customer notifications upfront. 

Casey,

Yes it was used successfully against the latest standalone server with some minor changes

- the X-ExperimentalAPI header used X-ExperimentalApi: opt-in
- had to change between using full name and display name for users

The api is still experimental and therefore not stable. Be prepared for the api to change between versions of JSD for server, or change without warning if you are using cloud - and to tune / adapt the script to the current state of the API.

If, like me, you are not strong with cURL I have found Postman to be an excellent tool for probing - The api is generally pretty good at providing intelligible error messages when something goes wrong or the input is malformed.

Dirk,

At the time of running the script, creating orgs / customers via the api did not send invitations

I tried the script against our standalone JIRA ServiceDesk server, but got only 401 / 403. Authentication unsuccessful, but I could not narrow down what goes wrong.

Any ideas?

Thanks,
Dirk 

Well 401 is unauthorised, 403 is forbidden.

https://httpstatuses.com/401

https://httpstatuses.com/403

You need to make sure the account you are using for authorisation has all the necessary permissions in jira and in the project. The API documents detail what permissions are needed to perform each operation but I think having an account with jira admin and project admin permissions mostly covers it

Do be careful doing this, its not good practice having an account with "god mode" permissions if you have the ability to elevate the permissions of the account you are using for authorisation be sure to restrict them again afterwards.

The logging could use some improvements. It may be helpful to log out the full body of the response when there is an error. eg ( logger.debug(response.body) )

I'll try to clean the script up a little bit. Like I said it was written under tight time constraints and isn't very polished, it relies on the user to be comfortable enough to troubleshoot and modify to their need accordingly 

Thanks for your Support, highly appreciated !

The user has global Administrator, Project Administrator and Services Desk Team rights/role.

I will try to debug the response.

Dear @Simon Merrick

Thank you!!! Works superbly well. I do get some errors however;

ERROR -
2017-11-30 11:18:02,320 - ERROR - Failed to process row: ['Organisation', 'Test name', 'test.email.adress]
Traceback (most recent call last):
File "bulk_customer_import2.py", line 205, in main
add_customer_to_servicedesk(args.servicedesk_id, customer)
File "bulk_customer_import2.py", line 137, in add_customer_to_servicedesk
logger.info("{} was added to service desk {}".format(customer["fullName"]))
KeyError: 'fullName'
2017-11-30 11:18:02,321 - INFO - The following rows not processed
['Organisation', 'Test name', 'test.email.adress]

Regardless of the above errors.. the script functions. User gets created etc. I am just not sure what these errors actually mean and how to resolve them. Everything seems to work though.

Thanks!!

Welcome. Your problems are my problems :)

I was glad to find this thread, because I thought I must be missing something in the documentation.

It's April, 2018... does Atlassian have a native solution for this yet? We are looking to run the Cloud version of Service Desk and we have 15,000 customers that we would like to import into organizations based on department with SSO and WITHOUT sending email to notify them that they need to set up their account. We really do not want 15,000 people to all get messages welcoming them to Jira Service Desk. Nor do we want them to be prompted to create accounts with unique passwords (although it would be fine if they are prompted to activate a SSO account the first time they submit a ticket).

We use Office 365 and most of our cloud apps are configured for SSO using Azure, and those that do not work with Azure use LDAP or SAML. I see that Atlassian supports Azure... I think? But it sounds like that's for licensed users? Will that work for service desk customers as well?  We also have G Suite (but not Gmail) in our environment and all of our users sync over to that. It looks like there is some kind of Google directory support? 

Basically I just want an automation/service that regularly syncs the customer list with our directory and I'd like it to import the following information:

  • email
  • Full Name (or first, last)
    Location
  • Work Phone
  • Title
  • Department (mapped to organization)

I would also like this information to sync automatically since people move departments. 

In our current service desk software this process is dead simple via LDAP.  It literally took minutes to configure.

I'm also wondering if I'm thinking about this the wrong way. Why create customer accounts for thousands of people who may never use our services? Maybe it should be by demand? The problem is that we would still like to have SSO. And ideally we would also have the location, phone, department, and title info since we assign tickets by department for some situations. 

Hi Sean,

Is your question being answered or responded? We also have the same challenge with 30,000 customers in one organization and also looking for a solution. 

Side track, does anyone know where can I get information on how to bulk import the customer portal setting in Service Desk Cloud? I am also looking for quick deployment method to setup 16 customer portal via import and not creating it one by one as it is really super time consuming in each repeated click! :( Please help if someone here know the method. Thanks

0 vote

Hi,
i have an error with the script. I have no idea whot is going wrong!
Can everybody help me, have i the right ID ?

Thank you verry much
Thomas


D:\tools\python-script>python bulk_customer_import.py "http://xxx-xxjir01:8080" "user" "password" bulk_import.txt BBK3-JPK0-0HL3-WXTG
2018-03-07 15:29:31,749 - INFO - Initializing session
2018-03-07 15:29:33,122 - ERROR - {"errorMessage":"Die Registrierung ist derzeit nicht verfügbar.","i18nErrorMessage":{"i18nKey":"cv.signup.error.not.
allowed","parameters":[]}}
2018-03-07 15:29:34,511 - ERROR -
2018-03-07 15:29:35,041 - ERROR - {"errorMessage":"Die Registrierung ist derzeit nicht verfügbar.","i18nErrorMessage":{"i18nKey":"cv.signup.error.not.
allowed","parameters":[]}}
2018-03-07 15:29:36,242 - ERROR -
2018-03-07 15:29:36,242 - INFO - The following rows not processed

Hey Thomas,

"Die Registrierung ist derzeit nicht verfügbar." / "The registry is currently unavailable."

Haven't encountered this error before.

Are you on Server? Version?

This may be relevant, what do your Customer Permissions look like?

https://community.atlassian.com/t5/Jira-questions/Dont-allow-users-to-create-new-customer-account-but-enable-email/qaq-p/75878

This ticket in an issue tracker of a 3rd partly plugin provider was the only exact match for this error message I could find at a glance. Are you using this plugin?

https://jira.appcelerator.org/browse/AC-229



NGL - I did a poor job reading your comment.

You are clearly on server. I think your servicedesk_id argument (BBK3-JPK0-0HL3-WXTG) is the problem. 

As per the usage docs at the top of the script, the servicedesk_id can be found by visiting your customer portal for the Jira Service Desk Project and looking for the number in the URL

For Example,

If your customer portal url is https://<base_url>/servicedesk/customer/portal/2

Then 2 is your servicedesk_id and you should use this to run the script

python bulk_customer_import.py "http://xxx-xxjir01:8080" "user" "password" bulk_import.txt 2

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published yesterday in Jira Service Desk

Wy are we still using email for Service Desk workflows?

...attest to the experience of an urgent approval that gets lost in the boss’s inbox and requires that special “Please Approve” email or text message. In an age where we have distributed teams...

113 views 0 2
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you