Custom Objects EAP Feedback
Below is a list of feature request and remarks for the Custom Objects EAP.
Below is a list of feature request and remarks for the Custom Objects EAP.
To make the requests "easier" to understand I'll use a fictional scenario of Pokemon.
Object Viewer
Create ticket for object
Scenario: I'm an agent who wants to create a ticket for an Asset. In our demo here: I know it's a Pokemon, it's a Charmander, and it's when I browse the list, Ash's Charmander.
If I already did the work of browsing the objects and finding the right Pokemon, a button to create a new ticket for this record would be handy.
Similar to the button to create a new ticket for a user when looking at their profile.
Creating a option to create a ticket for that objects would then almost require rebuilding the entire Form sidebar UI from the ticket view, at which point it’s easier to just use the Ticket UI anyhow since as a user you’re already halfway there.
Object overview
The Custom Object overview page currently shows only name, created_at, updated_at values in the table. It would be nice to be able to also show the details fields in this column to give more context.
(Or show the object on hover like tickets do)
Lookup Fields Search in ticket view
Currently only the name field is exposed. Searching on other objects could be useful to e.g.
- Show a list all Pokemon owner by a trainer (
custom_object_fields.trainer
lookup field for users ) by entering their name in the lookup field - Show a list of all fire Pokemon (
custom_object_fields.type
lookup field forType
Object)
Similar users might search for Microsoft and expect Office365 license to show up.
Duplicate Object
Zendesk Community post
It might be useful to have a duplicate button next to edit and delete. Customers who have complex objects (e.g. licenses with lots of conditions, or assets that exist multiple times like laptops or printers) might be easier duplicated than recreated if a similar record needs to be added to the inventory.
API
List records for user
Community Post Link
When using Custom Objects via API to
- create an overview for an end-user of their pokemon
- to create a sidebar app that lists all pokemon owned by that user.
Currently the Custom Object search only searches by name, and the relationships API endpoint for lookup fields only applies to ticket, user or organization fields.
Something akin to this would be handy. Searching custom_object_fields
and the owner field (user lookup) returns all records matching that relationship.
curl https://{subdomain}.zendesk.com/api/v2/custom_objects/{custom_object_key}/records/autocomplete?custom_object_fields.trainer=12345678
Sideloading
Zendesk Community link
Imagine doing a request to /api/v2/custom_objects/pokemon_captured/records/{record_id}.json
This now returns the following object:
{
"custom_object_record": {
"url": "https://d3v-verschoren.zendesk.com/api/v2/custom_objects/pokemon_captured/records/01GXXWZ8GWTDSTNEQHFZV02RAQ.json",
"id": "01GXXWZ8GWTDSTNEQHFZV02RAQ",
"name": "Ash's Bulbasaur",
"custom_object_key": "pokemon_captured",
"custom_object_fields": {
"hp": 42,
"pokeball": "01GXXWVG2SG5QNFE6KEG9S0S5B",
"pokemon_species": "01GXXWN869WA5X6SSQKHSC7RJD",
"shiny": false,
"trainer": "10992004688146"
},
"created_by_user_id": "362397585840",
"updated_by_user_id": "362397585840",
"created_at": "2023-04-13T18:10:17Z",
"updated_at": "2023-04-13T18:10:17Z",
"external_id": null
}
}
With pokeball
and trainer
and pokemon_species
linked objects via lookup fields.
To gather that data to show in a sidebar app or user profile we would need to make 3 additional API calls to gather those object records.
As a developer, something akin to this would be faster:
/api/v2/custom_objects/pokemon_captured/records/{record_id}.json?include=trainer,pokeball,pokemon_species
Which would then return a more complete object. Probably a lot heavier on your server/databases, but a bit more lean to develop against?
{
"custom_object_record": {
"url": "https://d3v-verschoren.zendesk.com/api/v2/custom_objects/pokemon_captured/records/01GXXWZ8GWTDSTNEQHFZV02RAQ.json",
"id": "01GXXWZ8GWTDSTNEQHFZV02RAQ",
"name": "Ash's Bulbasaur",
"custom_object_key": "pokemon_captured",
"custom_object_fields": {
"hp": 42,
"pokeball": {
"id": "01GXXWVG2SG5QNFE6KEG9S0S5B",
"name": "Ultra ball",
...
},
"pokemon_species": {
"id":"01GXXWN869WA5X6SSQKHSC7RJD",
"name":"Bulbasaur",
...
},
"shiny": false,
"trainer": {
"id":"10992004688146",
"name":"Ash",
...
}
},
"created_by_user_id": "362397585840",
"updated_by_user_id": "362397585840",
"created_at": "2023-04-13T18:10:17Z",
"updated_at": "2023-04-13T18:10:17Z",
"external_id": null
}
}
Create or Update endpoint
Our customers (we're a Zendesk Partner) often require us to regularly import new data.
For end-users the create_or_update
or create_or_update_many
endpoints are pretty cool. They allow us to bulk upload a hunderd records at a time, and records in Zendesk are then created or updated based on matching email.
Similarly an endpoint for Custom Object Records where external_id
or name
are the key identifiers would make bulk import/update a lot faster than the current flow where we need to create the items 1 by 1.
Custom Object Records
Additional Field Types
- URL
- Image (URL)
- Attachment (Base64 blob or real Zendesk attachment)
One-to-many Lookup Fields
Zendesk Community Post
A lookup field on ticket level currently can contain only one object. E.g. This ticket is about my order X.
There might be a scenario where a customer wants to log an issue against multiple items.
- Water damage and my laptop and iphone are broken
- Certificate experation for both our website and webshop that needs renewal
- An order with two missing items
- ...
Update:
You can get this to work with a junction object that basically links Orders and Products by creating an Orderline object. Or a Team members object that links a trainers' team and the captured Pokemon.