Requesting Feedback: Uploading Custom Object Records using CSV | Community
Skip to main content

Requesting Feedback: Uploading Custom Object Records using CSV

  • May 4, 2023
  • 6 replies
  • 0 views

Ashwin11
We are currently building the ability for a customer to bulk upload custom object records through CSV. And wanted some feedback on a decision.
 
Premise:
Let's say I want to add my Asset information into Zendesk. I create an Object called Asset and add a few fields into it like Asset Name, Asset ID, Type, Make, Model, Current Assignment etc.
My next step is to bring in data into the object. I decide to bulk upload the assets by CSV.
 
Feature Summary: Bulk upload gives you a no code experience in uploading data into Zendesk. It will have the following features:
  1. Create Records
  2. Update Records
  3. Upsert Records
We are planning to build it in the same sequence.
 
Problem Statement:
Outside of the record ID(which is assigned automatically by Zendesk), the only field that is currently unique is the External ID field.  And without a unique identifier, we will not be able to update the same record that I created using CSV
Question 1: Until we get to a unique record name field, should we enforce customers to fill in the external ID field? In the above premise, let's say the Asset ID is unique. Hence it can be copied over to the external ID before the CSV is uploaded
Pros: Easy to update the record later using CSV
Cons: Restrictive for customers and may not be a good use of external ID
Question 2: What are your ideal expectations of loading Lookup fields? In this case, I have a lookup field called Current Assignment which is pointing to a User. What do you expect to enter into the CSV to map the asset with the user?
 
CC: @carl14

6 replies

  • May 5, 2023

Question 1:
For our use case using or forcing the external ID field would work - the important bit would be that the upload (and perhaps the API as well) could handle create or update functionality:
e.g. if a custom object exists with the given external ID it would be updated, and if it doesn't exist it would be created.

At the moment when using the API there is not an endpoint for "create or update" and hence an additional GET request is required which checks whether the custom object already exists.

 

Question 2: Ideally - we would be able to map the lookup fields using external_ID, name and / or Zendesk id(user_id, TicketID, etc.)

For our use case - external ID would suffice.
In the API currently it is only possible to map via Zendesk id(user_id, Org_id etc.) this requires an additional API call to get the Zendesk ID via the external ID.

 

Additionally - it would also be great if Agents are able to search lookupfield using external_id or other parameters, but that is another suggestion which has already been placed if I recall correctly.

 

Lastly - volume would be important. I hope the CSV import is not limited to a few hundred rows. We would like to import up to 50.000-70.000 records at once.


Ashwin11
  • Author
  • May 15, 2023

@shayan11 -  I hear you on the Create or Update API call... Let me get back to you on that.. Currently, we have Upsert capability in the roadmap for bulk APIs.. Do you see that as being a need even for a single API record as well?

Do you see External ID being a field visible for Agents? Currently our plan with search (which is expected to be available by end of next month hopefully) is that you can search based on any text field.. The relevance would be
Name matches will have highest priority
Then Text fields
Then Regex fields
Then multi-line fields

Let me check with @carl14 - on the limits that we are targeting for Custom objects


  • July 29, 2023

Hi @ashwin11

Firstly thanks for what you and your team have done with the New Custom Object UI, it is looks brilliant.

Can you confirm when support will be available to perform batch actions such as import custom objects via csv as you can to date for 'users' and 'organisations'. Apologies if this is already available but I was unable to find any reference in the forums or documentation.

In answer to your question above. I would suggest providing a downloadable template pre-filed with the existing data and custom created fields. This would allow us to download our data, but also to update a record or create new one by uploading the same file. this ensures the minimal room for syntax error. 

In terms of identifying an object by a unique field.... if the external ID field is left blank it is auto created with random data as a new record, if it it field in but does not match an existing record it is created as a new record, if it matches an existing record the records other fields are updated.

All the best
Dean.

 


Ashwin11
  • Author
  • July 31, 2023

Hi @dean12. - We were in the process of building this feature. Hence wanted to get some feedback from the community. We are targeting to have this feature available to you by the second half of September.


  • August 1, 2023

Hi @ashwin11

In the meantime is there another way to upload larger data sets into the new custom objects so I can continue testing?

We also use devart.com plugs to keen to see if they are compatible

Thanks
Dean 


  • September 8, 2023

@ashwin11, Forcing external ID probably is not the solution. In other areas of support I end up using ZD ID in that external ID field because the object/record is not integrated with any other system. Or simply I couldn't use the external ID in the way I need it and I have a custom field for that unique value.

It'd be great if when importing you can indicate what field is going to be used for uniqueness of the record (so you can use name, external ID or any other).

Personally I like the import tool in Zendesk Sell. You indicate your preferences (like if add or update or both, and what to update in the existing records). Then you have the map of fields and confirmation.