Adding a comment to a ticket via the API Follow

Comments

6 comments

  • Avatar
    Michael

    Where can I find examples that show how to do this ... using the ruby client or the REST API straight up?

    Right now I can do something like this to *create a new ticket* with comments using the ruby client:

    ticket = ZendeskAPI::Ticket.import(client, :subject => 'Help me, Spock', :comments => [{ :author_id => xxxxx, :value => 'Comment1' }, { :author_id => xxxxxx, :value => 'Comment2' }])


    But how do I *update* the collection of comments on a ticket using the API for an existing ticket?

     

    thanks- Michael

  • Avatar
    Jessie Schutz

    Hey Michael!

    There are a couple examples in our ticket update API documentation that I think will help you out!

  • Avatar
    Michael

    Thanks Jesse.  I did look at that, and the above import code *does* work for creating a new ticket with a number of comments.  But what does not yet work for me is using the (official) ruby wrapper library to add a new comment to a ticket that has a number of comments already.  Here is what I am doing now, in ruby:

    # get a valid client

    client = ZendeskAPI::Client.new do |config| ... end
    ticket = client.tickets.find(:id => [my existing ticket id])
    ticket.comments.length # = 10... good, that's what I created
    comment = ticket.comments.las.dup . # create a new one and null id
    comment.body = "11th comment" # or something
    comment.ticked_id = ticket.id # just in case
    ticket.comments << comment . # add it
    ticket.save! # saves ticket, doesn't show comment
    ticket.comments.save! # doesn't work either
  • Avatar
    Rebecca (Edited )
    Hi Michael! Sorry to hear you're having some trouble using the Ruby client. I am going to create a ticket on your behalf to troubleshoot this further. 
     
  • Avatar
    Michael

    Hey Rebecca - thanks for the reply, but I figured it out... I wish it were better-documented, but it is very simple:  I found the answer in a GitHub issue on the project for the ruby wrapper:

    t = client.tickets.find(...)

    t.update(comment: {public: false, body: 'comment 2' })
    t.save

    This adds a comment to the collection of comments on the ticket.  It's not obvious (to me) that this is what would happen; I was expecting something more like

    t.comments << comment

     

  • Avatar
    Hbh

    I support Michael's idea. The official ruby client's documentation should be improved or the usage of api should be changed.

Please sign in to leave a comment.

Powered by Zendesk