My Clean PC: New Remote Desktop Service!

MPA Computers now offers a new
& easy remote desktop service, eliminating the hassle of drop offs and scheduled appointments!
Read More...

Sign up for our newsletter!

Name
Last Name
Email
Prefix
Suffix
Fax
Phone
Business
Address 1
Address 2
City
State
Zip

We appreciate your feedback!

busyLoading Poll...

MPA Pizza Giveaway

Don't give up yet!

We're still giving away free pizza all the time, and it just takes 60 seconds to sign up! So what are you waiting for?

SIGN UP NOW >

We use Zendesk as a support system for our customers. We use it to manage both parts of the business, the computer shop and the design shop. We also use google apps to manage our email, calendars, and contacts.

One of our frustrations with Zendesk, is its inability to add task due dates to our google calendars. This frustration is shared by many others in the forums at Zendesk.

Fellow Zendesk user, Domenic Dawson, has provided a great post on adding appointments in Zendesk to Google Calendar. Here's a link: “How to Integrate Zendesk with Google Calendar”. It's a great tutorial and very useful for adding appointments to Google Calendar.

But, trying to use this same method to add a task due date doesn't work. Something about the trigger/target combination in Zendesk creates a date format that isn't compatible with My Event Bot.

At MPA Computers, we are using a simple work around and adding tasks to our Google Calendars from Zendesk. We use a small php script that accepts data from Zendesk and then sends an email to MyEventBot. It works well. If you want to use Zendesk to add task due dates to your Google Calendar, try the steps below. If you get stuck, leave a comment. We will try to help.

  1. Follow the steps outlined by Domenic Dawson to get MyEventBot connected to Google Calendars. Here's a link: “How to Integrate Zendesk with Google Calendar”. You need to do steps 1-5.
  2. Next, you need to create a small php script. Here's our sample.

    <?php

    $duedate = $_GET["duedate"];
    $assignee = $_GET["assignee"];
    $requester = $_GET["requester"];
    $title = $_GET["title"];
    $number = $_GET["number"];

    switch($assignee)
    {
         case "Agent One":
              $to = " This e-mail address is being protected from spambots. You need JavaScript enabled to view it ";
              break;
         case "Agent Two":
              $to = " This e-mail address is being protected from spambots. You need JavaScript enabled to view it ";
              break;
    }

    $subject = "#" . $number . " - " . $requester . " " . $title . " on " . $duedate;
    $body = "";
    $headers = "From: Your Name < This e-mail address is being protected from spambots. You need JavaScript enabled to view it >" . "\r\n";

    mail($to, $subject, $body, $headers);
    ?>
    We saved the file as add_task.php on our web server.

    A couple of notes regarding the script.
    • In the switch statements, the Case values must exactly match the full name of the agents in Zendesk.
    • Replace the appsptmail.com addresses with your actual MyEventBot email addresses for each user.
    • There is no error checking in this sample. We left clean for demonstration purposes. So, use it at your own risk.
  3. Set up a target in Zendesk.
    1. Go to Settings->Extensions->Targets
    2. Add target
    3. Click URL target
    4. Fill in with:
      • Title: Add task to Google Calendar
      • URL: http://www.mydomain.com/zenscripts/add_task.php?assignee={{ticket.assignee.name}}&requester={{ticket.requester.name}}&title={{ticket.title}}&number={{ticket.id}}&duedate={{ticket.due_date}} - Make sure you use your domain, folder, and file name.
      • Method: GET
      • Attribute Name: {{ticket.duedate}} - We use {{ticket.duedate}}, but, I don't really know if it matters what you put in. It just can't be blank.
      • Everything else: nothing, nada, leave them empty
      • Select “Create target” in the drop-down at the bottom of the page. Click Submit. - Your target is active.
  4. Set up a trigger in Zendesk
    1. Go to Manage->Triggers and mail notifications
    2. Add trigger
    3. Here's what we use for settings:
      • Meet all of the following conditions:
        Tags - Contains none of the following - noreschedule_all
        Type - is - Task
      • Perform these actions:
        Notify target - Add task to Google Calendar
        Add tags - noreschedule_all (We add the tag so that calendar items aren't added every time a ticket is updated. Need to reschedule the deadline and update the calendar? Just delete the tag from the ticket.)
    4. Click the Create Trigger button.

That should get you started. As we said before, if you have questions, leave a comment. We're listening.

At MPA we use a lot of open source software. So, we are glad to give back a little to the community through our code examples.

If you would like to thank the programmer, but don't have code of your own to offer, you can buy the guy a cup of coffee. Just click the "Buy Now" button below and you'll deposit a buck or two into his coffee account.

Thanks,
MPA

What kind of coffee do you want to send the coder?

If you LIKE this, we'd LOVE for you to SHARE!

Hits: 436
Comments (2)add comment

David Birchmier said:

Thanks for your comment.
I'll be happy to help out with your question.

This solution WOULD work for you, but I would suggest that you also add a couple of fields to reference the time that you'll be scheduling the appointment for and then pass this in the target (to eventbot) subject as well.

This is actually exactly how we schedule all of our appointments. (What you're wishing)

The newest integration (What our team mate, Chris Ball is blogging about) is what we setup to keep track of deadlines and due dates on our calendar.

Let me know if this answers your questions. If you have further questions please don't hesitate to ask!
February 05, 2012

Steve said:

Can this allow clients to assign themselves?
Great work! I love the work around but before I implement it can you confirm that this is the right direction I need to be heading. Basically I'm a tech currently scheduling clients within zendesk by manually giving them my availability (ie Wed 2/1: 9-11am, 11am-1pm, 1-3pm...) And then scheduling it in the calendar, unfortunately this leads to a lot of inefficient back and forth.
February 01, 2012

Write comment
smaller | bigger

busy