Fine Tuning: So you want to build an app?

16 Comments

  • Official comment
    Jeremiah Currier
    Comment actions Permalink

    Hey there, please post any questions you have here in the comments. Good morning everyone!

  • Joel Hellman
    Comment actions Permalink

    Great stuff. I love the simplicity of the apps framework, and the zat tool. The Data API and the Interface API is really powerful.

    Being able to test your app code locally using zat server, where changes are immediately deployed into Zendesk, so greatly simplifies development. 

    When we started with Zendesk, the Interface API and the locations didn't fully support the user sidebar or the organization side bar, but I discovered you have added support here, through your public apps changelog, which is awesome (I follow that changelog now, to keep up to date of any new additions to your framework).

    1
  • Joel Hellman
    Comment actions Permalink

    When I started out with the apps framework, one source of confusion was interaction inside the app with the object

    this.$

    which is not a jQuery object, but a object with subset of some of it's features.

    In the beginning, I tried to access jQuery functions like this.$.trim(), with no success. I have learnt since then, but I think we should improve on the documentation here. Maybe we could the capabilites of this object better?

     

     

     

    0
  • Joel Hellman
    Comment actions Permalink

    What I also like to be able to do within the apps framework, is to drop in some custom js libraries, such as https://www.datatables.net/ 

    This doesn't seem possible though, at the moment?

    0
  • Joel Hellman
    Comment actions Permalink

    When I started out with the framework, I sometimes added custom fields to the left sidebar (where ticket data and forms live), because this location is always visible, and it sometimes makes more sense from an UX perspective

    Since then I have learned that when developing an app for the ticket sidebar, it's usually better to consider having your app's interface solely in the right (apps) ticket sidebar. 

    Here is a pretty recent community discussion where another user struggled with the same issue.

     

    0
  • Joel Hellman
    Comment actions Permalink

    When I started installing apps in our Zendesk, I reflected over how much space each app takes in the ticket sidebar.

    To remedy this, I'd love to see some built-in support for controlling the real estate of the app, specifically being able minimize apps, and remembering their toggle state. This is totally doable already, but it adds a lot of boilerplate code to the app, and it does require some consideration so the apps collapse state is tracked properly. Which is why is most apps in the marketplace today doesn't seem to offer this.

    Basically, if it would be great to add support for changing the state of the app like below (example):

    0
  • Jeremiah Currier
    Comment actions Permalink

    Hey Joel, lots of comments, let me reply one at a time: 

    1. 'this.$'

    I can explain by using an example, let's say you have a container in an app that you need to hide using the JQuery .hide() method. You would do that this way: 

    this.$('#container-name-here').hide();

    ...where 'this' means the scope of the entire app and the rest is using JQuery to call the '.hide()' method on the DOM element you've specified, in this case that's the example ID 'container-name-here'.

    Hopefully that helps.

    2. "What I also like to be able to do within the apps framework, is to drop in some custom js libraries"

    At the moment we support our documented libraries which are included with ZAF.

    3. On the hiding/showing of ticket fields via an app

    The documented best practice is to use our Interface API to hide & show ticket fields.

    4. App real estate

    There's a lot of ways to solve this problem but none of them are by a build-in method with ZAF that let's someone easily hide/show an entire app/etc. 

    Here is my response to this question already posted elsewhere in the forums including my working code examples. Again, this is just one way to collapse/expand an app.

    5. "I'd love to be able to interact with the central column to the left of the right ticket sidebar (where the comments live).Is this on the roadmap yet?"

    I'm afraid accessing elements of the DOM not built into what's possible with the aforementioned Interface API would not be supported. I can certainly appreciate the use cases you've described and regrettably it doesn't seem this is a feature coming soon.

    6. "We use automations to auto remind requesters on certain pending tickets, or to reassign tickets where support agents are inactive. Would be great to be able to selectivly choose to display such events in the comment stream..."

    This could be solved by using a trigger + target combination. It would operate like an application of a macro after ticket update using a target.

    0
  • Joel Hellman
    Comment actions Permalink

    At one point, I'd love to be able to interact with the central column to the left of the right ticket sidebar (where the comments live).Is this on the roadmap yet?

    I have lots of use cases, like

    • We use light agents (who don't work in Zendesk), so cannot use Internal Notes to make internal work notes on the ticket, since those are visible and set out with agent notifications. It would make perfect sense to put those notes in the comment stream instead.
    • We use automations to auto remind requesters on certain pending tickets, or to reassign tickets where support agents are inactive. Would be great to be able to selectivly choose to display such events in the comment stream
    • We have conversations where agents and customers are added and removed from CC. It would be great to hook into the comments audits to add some select extra info above the comment updates, showing which users where on the CC or notified for specific updates, and the source of a ticket update (e.g. the sender's email address) 

     

    0
  • Joel Hellman
    Comment actions Permalink

    1. 'this.$'

    I'm with you, in that the main use of this.$ is as a jQuery selector.

    I guess my point/tip was just to highlight for other developers that this.$ is not the same as the a fully loaded jquery object. 

    The documentation is stating jQuery 2, so one could reasonably guess some developers would try to access native jquery library functions like $.trim(), $.extend(). 

    4. App real estate

    That's cool, I didn't know collapsing the apps had already been discussed so recently. I'll go ahead and add some comments to that discussion. 

    5. central column

    Good to know! Thanks.

     

    0
  • Graeme Carmichael
    Comment actions Permalink

    App Real Estate, on my wish list, is that more developers, including Zendesk, would make their apps collapsible. 

    0
  • Joel Hellman
    Comment actions Permalink

    @Graeme: regarding collapsing the apps, I have added my detailed notes to this discussion that Jeremiah referenced :)

    To boil it down; collapsing apps adds a lot of complexity to the app at the moment, so I think we app developers will need built-in support in the apps framework, if we want this to happen. 

     

    0
  • Graeme Carmichael
    Comment actions Permalink

    @Joel, thanks for sharing your thoughts. 

    0
  • Jeremiah Currier
    Comment actions Permalink

    Great stuff guys - keep it coming!

    0
  • Karen Farmer
    Comment actions Permalink

    Hi everyone! For even more tips on incorporating apps into your Zendesk workflow, we've got another great post for you today.

    Zendesk on Zendesk is a day-long discussion about a specific topic and how Zendesk Support uses Zendesk. Each session is hosted by a member of our Support team.

    This session is about how we decide which apps to install in our Zendesk instance and strategies for maximizing app usefulness. 

    0
  • Benjamin
    Comment actions Permalink

    Hello!

     

    I'd like to use a jquery plugin for an app I'm working on. But I couldn't find anything about it in the docs . Is it possible or is something that zendesk doesn't allow at the moment?

    0
  • Jessie Schutz
    Comment actions Permalink

    Hi Benjamin! Welcome to the Community!

    Have you checked out our Developer Community yet? There are lots of technical experts over there that can help you with your question!

    0

Please sign in to leave a comment.

Powered by Zendesk