Send outbound email from Zendesk?

Answered

62 Comments

  • Michael Ichioka

    Madison from ZenDesk helped me find a work-around for this:

    I also added Other: Current User > Is Not > Agent as a condition to the standard "Notify requester of received request" trigger to avoid overlap.

    4
  • Maurice

    Hello HDM Contract,

    I tried your app. If it was able to send an email to just a single person, it would be perfect. Is this a feature you plan on adding in the future?

    Also would be nice if we could select the email to be the sender. 

    Add those features, and I would pay money to use it!

    3
  • Avi W.

    Hi Patrick,

    Since Zendesk isn't an email client or an email marketing solution, we don't support outbound email unrelated to tickets. That said, you can certainly create tickets on your user's behalf and they'll get the 'we've received your request' email that you noted, containing the content of that ticket. 

    What you could do is actually clone that trigger (Notify requester of received request) so you have two versions, one for normal tickets, one for agent created tickets (where you edit the text sent out so it's stripped of the text you don't want users to see). Have your agents add a unique tag on tickets where they want people to get a stripped-down email and add as an 'All' condition to the new trigger: 'Tags' 'Contain at least one of the following' '[unique_tag]' then add the opposite condition to the original trigger so only one will fire on any given ticket. 

    For more help creating the new triggers, you can refer to our trigger documentation here: https://support.zendesk.com/entries/20011606-streamlining-workflow-with-ticket-updates-and-triggers

    1
  • Steve Black

    Any movement on this one?  We send a fair amount of outbound email where we want the follow up to be tracked as a ticket in Zendesk.  Right now, my (messy) solution is to have an agent log into gmail, send an outbound email from gmail and the reply to address picked up in Zendesk.  Not ideal at all.  Would love to know if there is:

    1) anything in your roadmap to address this?

    2) any thoughts on a trigger that would work to get around this?

    I'm guessing quite a few of your clients do outbound emails as well - so would love to hear how anyone else has cracked this one!

    Steve

    1
  • olimits7

    Well, I just talked to Zendesk support and you can't send a new ticket from different email addresses without using a 3rd part app like "Create Ticket by Brand" and the kicker is you have to be a Zendesk Enterprise customer paying $125/mth per agent...that's amusing!

    I really can't understand why Zendesk wouldn't have thought this is a key feature for customers.  I don't want all my emails to be sent from 1 support email address; if that's the case why would I even bother setting up more than one support email address if I can't even send new tickets from it.

    Zendesk should be a full-service help desk ticket support system.  You guys offer live chat, knowledge base, communities, incoming multiple email address support but for some reason outgoing multiple email support was not on your radar...very disappointing!

    After learning how Zendesk works and liking it; now I have to use another help desk ticket support system that allows me to send emails from different email addresses like GrooveHQ, Enchant, Kayako, etc..

     

    1
  • Pedro dos Santos

    Please make this happen... anything besides being able to straight send an outgoing email message is not really acceptable at this point. :(

    1
  • Jessie Schutz
    Zendesk team member

    Hi Patrick!

    If you're doing this on a case-by-case basis (not in bulk), the best way is to simply create a new ticket in Zendesk, with your customer as the requester. Add whatever information you need to communicate to them in the Description of the ticket. When you submit the ticket, an email will automatically go out to that customer. Provided that you haven't changed any of the formatting on your default triggers, your customer will see your message in that email.

    1
  • Matt Savage

    Cristian- Gotcha.  Your use case sounds like it'd be perfect for a campaign manager.  Lucky for you, Zendesk acquired a company that does just this earlier in 2017, Outbound.  Maybe give that a shot?

    If you're able to take a more technical route within Zendesk directly, you can write some code to send notifications through the Zendesk API.  Exporting a list of your users into a csv, then looping through it to create tickets sending them the same welcome messaging is pretty straightforward.  Here's a basic Python script to bulk create tickets via the Zendesk API.

    #!python3
    # -*- coding: utf-8 -*-
    # Import these Python modules to simplify Zendesk API interactions
    import json
    import requests
    import pprint
    import csv

    ### SECURITY- DON'T STORE API KEYS IN GITHUB ###
    #Set the request parameters get credentials from environ variables in ~/.bash_profile.
    email = [your_email]
    token = '/token'
    user = email + token # you can ignore this line and the one above if you're not using an API token to authenticate (i.e. you're using email/password - not recommended for security reasons
    headers = {'content-type': 'application/json'}
    endpoint = 'tickets'
    url_end = endpoint + '.json'

    # PROD
    url = https://[your_subdomain].zendesk.com/ + url_end
    pwd= [your_password]

    # Set session variables
    session = requests.Session()
    session.auth = (user, pwd)
    session.headers = headers


    # upload file (static upload), can change this to user input if desired
    ifile = open('user_list.csv', 'rU', encoding='utf-8')
    reader = csv.reader(ifile)
    header = next(reader)

    # CSV will have the following components
    # Email_of_Owner | First_Name | Last_Name

    # Iterate over all elements in the main dictionary of Account SIDs
    for row in reader:

    # Variables from csv that will be used for Zendesk JSON
    requester_email = row[0]
    requester_name = row[1] + ' ' + row[2]
    friendly_name = row[3]

    # New Ticket Info
    subject = 'Welcome to our new community'
    tags = 'new_user_welcome'
    status = 'solved'
    greeting = 'Hi {{ticket.requester.first_name}},'
    body = greeting + """\n Your Welcome Message Goes Here. \n <- use this to start new lines"""



    new_ticket = {
    'ticket': {
    "requester": {"name": requester_name, "email" : requester_email},
    "subject": subject,
    "comment":{"body": body},
    "status": status,
    "tags": tags
    }
    }

    # Encode the data to create a JSON payload
    payload = json.dumps(new_ticket)
    pp = pprint.PrettyPrinter(indent = 4)
    # pp.pprint(payload)

    # Create ticket via tickets API endpoint
    response = session.post(url, data=payload)

    # Check for HTTP codes other than 201 (Created)
    # Ideally, log errors to another csv to make debugging/retrial easier but this is a quick hack so terminal feedback will suffice
    if response.status_code != 201:
    print('Status:', response.status_code, 'Error:', response.text, 'Problem with the request for ' + email)
    continue

    # Report success
    else:
    print('Successfully created the ticket for ' + email)
    1
  • Pilar Sterne

    I just received the notification about the {{ticket.comments_formatted}} and {{ticket.description}} placeholders getting suppressed soon for spam protection. 

    Without this, I'm not sure how we can send outbound emails from Zendesk? If my notification can't include my original message, what other ways are there to send an outbound email to a user from Zendesk? 

    1
  • Laura D.

    Hi Steve, 

    As far as I know there aren't any plans to address this in a way different from what Avi mentioned: creating a ticket on your customer's behalf from inside the agent interface. We do this frequently for upcoming changes to features like the API, authentication etc. - we call them "proactive tickets" and they've worked really well for us. 

    The only other option I can think of is an integration with something like MailChimp or SurveyMonkey but those would require accounts with those companies and they would be fairly specific kinds of messages. We just launched updated integrations with both products along with our Customer lists feature. 

    Hopefully other people can share how they've done this too!

    0
  • Steve Black

    Hi Laura, Thanks for the quick reply.  Can you talk me through the 'proactive tickets' approach?  So, you log in as an agent, create a new ticket from the interface and put 'requester' as the customer?  What do they then get?  The automated 'we've received your request' note, or something that seems more like a message?  The former doesn't feel personalised and I'd guess would lead to some confusion 'I didn't request anything?!' with people.

    Any examples or triggers you use to do the latter would be a big help!

    Steve

    0
  • Emily

    Hi Steve, 

    We use the API to create proactive tickets, which you could also do using your development resources. 

    If you'd rather create proactive tickets manually, there are a number of things you can do to ensure customers don't receive confusing messages.

    1. If you uncheck the "Also send a verification email when a new user is created by an agent or administrator" checkbox under Settings > Customers, proactive tickets won't create a welcome email to the end-user upon ticket creation. You can also add a condition that says "current user" "is not" "agent" to the 'Notify requester of received request' trigger, which would it prevent it from sending that notification to the requester on a proactive ticket.

    Since the ticket has the normal requester and agent setup, any follow-up comments by the end-user will trigger a notification to the agent and follow-up comments by the agent will send a notification to the end-user.

    1. If you'd like your proactive tickets to have separate trigger notifications from the reactive tickets, you can distinguish them with tags and build your triggers to fire based on whether a tag is present or absent. 
    0
  • Chris K

    @Emily: Can you share an example of how you are using the API to create pro-active tickets? That would be helpful.

    It is becoming a major pain point for our customer service team - the use case being a customer places a delivery order, the supplier contacts us informing us that the delivery is delayed, and we want to communicate this to the customer with a personalized message. Obviously we would rather have this tracked in Zendesk rather than emailing the customer from a personal account.

    0
  • Chris K

    Actually, found it. Unfortunately it doesn't look like it will suit our needs.

    0
  • Laura D.

    Sorry to hear that Chris. Is this because the messages that go out look like they are coming from a system instead of a regular email account or something else? 

    0
  • Info

    Hi

    We use Zendesk for all our outgoing email and have set it up in a very simple way. We do not require users to register to submit a ticket, so we only have one trigger switched on (Notify requester of comment update).

    To send an outgoing email, we add our system email address in the ticket Requester field and add the recipient in the CC field. We have also stripped out the CC text that appears as default.

    The recipient receives the ticket as an email with their name as a CC. It is not ideal, but we have no complaints and send out  hundreds of outgoing emails each week. Our order forms also come straight into Zendesk and, as we have everything in one place, we can use automations to create a workflow system.

    All this means that we have thousands of tickets which are fully searchable and auditable.

    Suzanne

    0
  • Craig Eastman

    Is there any way to insert HTML (or any other mark up language) in to outbound messages for branding purposes? We have gotten complaints about the email presentation for our post-ticket survey invitations, looking 'un official'.

    Any solutions out there?

     

     

    0
  • Dan Beirouty

    Hi Craig!

    Thanks for your post!

    You can customize emails using HTML within the Channels -> Email -> Email Templates section of your Zendesk. 
    The document at the following link can guide you through some customization options:  https://support.zendesk.com/entries/20378368-Customizing-your-email-templates.

    Hope that works for you!

    0
  • Nathan Liu

    Laura, that is the issue I'm having. We need the outbound email to come from one of our customer email addresses that we have configured in Zendesk and not our @subdomain.zendesk.com address. If there was a way to configure the email response address in the trigger actions this would be no problem. What are the chances of that happening?

    It's almost a deal breaker. If we can't do outbound communication with customers then we'll have to do stuff in both Zendesk and Outlook, which defeats our initial need for Zendesk which is consolidating our customer communications in 1 place...

    0
  • Laura D.

    Hi Ryan,

    You can mask the Zendesk name in the email address so that if a customer sees a reply from you to a ticket they submitted it looks like it came from "support@mycompany.com" - we have Support Addresses for this. You can find more information about them here: https://support.zendesk.com/hc/en-us/articles/203663336-Adding-support-addresses-for-users-to-submit-tickets. Keep in mind you need to have the "support@mycompany.com" address already, independent of Zendesk.

    If you create a ticket on behalf of a customer that ticket will use your default address - which can be a support address. In this case you can't choose which email it comes from but at least it doesn't have to have the Zendesk subdomain. 

    All of that said, there is a Zendesk Labs app that will let you choose which email a ticket comes form when you create it: https://www.zendesk.com/apps/create-ticket-for-brand. The app is available to everyone, though because it's not official we don't offer support for it. It also says you have to be in the brand beta but that's not true - we'll get the text fixed soon!

    Hopefully that helps, if that's not quite what you mean please let us know.

    0
  • Nathan Liu

    Laura,

    Thanks for the quick response!

    I'll try out that Labs app. Sounds like it could work well for our hacked together multi-brand setup.

    Thanks!

     

    0
  • Nathan Liu

    That App isn't playing well with our setup...getting errors when trying to create a ticket. Is there anyone that can help even though it's not official?

    0
  • Colin Piper

    Ryan, the most common issue I have seen with this app is that you may be on enterprise and have not added the new custom field to the ticket form.

    If you could tell us the error we may be able to help

    0
  • Nathan Liu

    Colin, we're on the Plus plan. We have a custom ticket field setup with our options. The ticket field is marked as "required" for tickets.

    In the JSON code for the email addresses, I assume the first field is for the ticket field tags? That's how you associate brand with the email address, like this?

    json { "ticketfield_tag": "ticketfield@associatedemailforbrand.com" }

    The error I'm getting is:

    "An App has timed out and has prevented the submission of the ticket. For more information, please contact a Zendesk administrator."

    0
  • Colin Piper

    Ryan, being on Plus the ticket form issue is not relevant to you.

    I looked at the settings I have. The JSON looks like this:

    {"brand_brand1" : "support@brand1.org", "brand_brand2" : "support@brand2.org", "brand_brand3" : "support@brand3.com"}

     

    0
  • Colin Piper

    Btw, the "brand_brand1" is the tag value of the dropdown option in the custom field

    0
  • Nathan Liu

    Hey Colin, thanks for the response. I double checked vs what you posted and updated the json even so the spaces are the same. The email addresses I'm using are properly added as support addresses in Channels / Email. Everything looks good on the ticket field and tags.

    Still getting the timeout error. 

    I'm not sure what else could be causing it...?

    0
  • Colin Piper

    Ryan, this is getting complex. At this stage I would disable all the other apps you have and test with just this one. If you still get the same error then you are going to need to debug using firebug or something similar. I will not be much help at that stage, I apologise in advance. 

    0
  • Nathan Liu

    Tried disabling all other apps with no luck.

    Do you know if having agents using Zendesk while these changes are made to the apps could affect anything? Should everyone be logged out maybe, or does that not matter?

    I don't know what I would need to be looking for in firebug or dev tools.

    0
  • Colin Piper

    You do not need to get agents to log out and as long as you have refreshed the browser (F5) the I cannot see what the issue is. 

    Sadly I am not sure what to look for either. I hope someone else can come to our rescue. 

    0

Please sign in to leave a comment.

Powered by Zendesk