Tracking email responses - sendgrid

What is the best way of tracking responses for email campaigns? I was thinking on adding something to the reply-to field of the email (for example luqita+campaigns#stackoverflow.com), but I'm not sure if there is something more neat that could avoid this?
I thought about headers too, but it's important to note that the address luqita#stackoverflow.com would send many different campaigns, and the 'in-reply-to' header info would not be useful then to differentiate (while using luqita+campaign1 or luqita+campaign2 could)
What can I do?

So you want to be able to execute some logic when someone replies to an email you have sent through SendGrid? If you have access to change the MX record of the domain of the email address at which you want to receive the replies, you could use SG's Parse API to get a POST request to a script whenever email is receive at the address.
I think you would indeed have to set a magic reply-to address for each campaign. This seems like a perfectly fine solution; it's also how SG itself tracks bounces - it sets the return-path to something like bounces+{attempted-recipient-email}#sendgrid.com. Then examine the 'to' parameter of the POST notification you receive to know which campaign the reply is associated with.

When you say "tracking responses", do you mean that you expect users will reply to the Email, or do you mean that they'll click on a link in the Email and interact with a web site?
SendGrid obviously offers click tracking and open tracking, and you can set up to 10 different categories for tracking campaign stats and see delivery/bounces/opens/clicks/etc based on those categories. They also have a Google Analytics plugin that can feed back some analytics data to Google. And as #LinusR mentioned in his answer, the SendGrid Parse API can be set up in a way that reply Emails can get parsed and posted back to your site.
If the user will be interacting with your web site, you can use the "unique args" setup at SendGrid to set a unique string/hash to append to any URLs that can help identify a particular user, campaign, or whatever else you want to track.

Related

List-Unsubscribe header doesn't show unsubscribe link in gmail

I manage an email newsletter for a customer. It uses a custom list management utility, but the emails are being delivered through SendGrid.
In order to integrate correctly with our list management unsubscribe. I'm manually creating the "List-Unsubscribe" header, with a mailto address, which goes to an email parser, and unsubscribes the user from the correct publication etc.
The email parsing etc. works fine. However for some reason gmail is not displaying the "Unsubscribe" link in the header, as it does with other newsletters I receive.
Another newsletter I manage for a different customer, uses SendGrid's built-in unsubscribe management, and for these ones gmail does display the link.
What I want to know, is why is my custom "Unsubscribe-Link" ignored by gmail, but SendGrid's works?
SendGrid's "List-Unsubscribe" looks like this ...
List-Unsubscribe: <mailto:unsubscribe#email.mycustomdomain.com?subject=http://links.mycustomdomain.com/asm/unsubscribe/*q*user_id=[SHA hash...==]>
My custom "List-Unsubscribe" looks like this ...
List-Unsubscribe: <mailto:u-[custom-encoded-user-id+publication-id]#list-management.mycustomdomain.com>
My email parser reads the incoming "to" address, and interprets the encoded user-id and publication-id, to unsubscribe the person from the correct list.
Can anyone suggest why gmail might not like my link? It's extremely difficult to find detailed information about the requirements for this header.
One obvious difference, is that mine doesn't have a subject, but that's because it doesn't need it. It gets all it needs from the "to" address. Could this actually make a difference though? Does the "to" address need to remain static?
I thought perhaps it just needed time, for gmail to familiarise itself with this newsletter. However it has been running for months, and still no link.
The list is very clean, and all recipients have opted-in. We don't get any spam reports, and very few bounces.
I've gone to a great deal of trouble to ensure that everything works correctly from my end, and it's very frustrating that I cannot find out what I need to do to make this work.
I found a similar question at the gmail forums, and the official response to that question was to "contact a professional about constructing html emails".
Not very helpful for me, as in my case, I'm supposed to be that professional.
Any suggestions would be greatly appreciated.

Get all email addresses from GMAIL with whom I exchanged emails

I want to get email addresses from my account with API. I can get those emails from my contacts, but don't succeed to get those emails who are not in my contacts, but I had email conversations with them before. From where I can get any doc or information how to get that information from API?
I think your only option is going to be doing a user.messages.list loop though each message and run a user.messages.get and check the sender email address.
The API doesn't return the the information you are looking for. You could also just start adding these people to your contacts.
Its an interesting idea you may want to submit it as a feature request. Issue tracker

Option for creating a template when sending an email (to specific gmail address) in gmail

I publish myself as a personal teacher for students, and recently the number of the clients increased, and I think that a proper solution for me will be like that:
when a client sends me an email on Gmail (more correct, puts my gmail address on "send to" field), a template will show up and the client will choose from dropdowns details like: grade, subject, phone number etc.
and that will help me manage myself in a proper way.
I would like to know if that possibility even exists on gmail, and if it does, how do i operate it.
thanks for helping me.
The closest thing that I can think of is using Filters. Filters in Gmail will let you label incoming mail based on the sender, subject or more. These will then show the label in your inbox. You can then keep a Draft or spreadsheet of response templates. You can read up more on filters here.

For non-customized bulk email, is it better to use the BCC field, or generate a separate email with To header for each recipient?

I'm generating a bulk mailing each day for users who want to receive the daily deals. I can either send a separate physical email with each user specified on their own unique To header, or I can send one email with all the users on the BCC line.
Obviously if I ever want to create user specific content I will need to customize the emails per user and send them individually, but if I don't want customized email right now, should I just send out the single email with everyone on BCC? Any reason to NOT do that.
Edit: I'm using a third party as my gateway that specializes in delivery with CAN-SPAM compliance, etc.. not trying to do this off my own mail server...
Update: I guess I'm really also looking for some metrics here. Is there a difference in open rates of BCC'ed email vs To field email? What about spam filtering rules that might pre-classify based on the BCC field?
No reason I can think off for NOT doing it. Using BCC is the polite way to send bulk emails.
In this case, it turns out that the correct answer was neither. The gateway provided a custom header API that allowed me to specify all the recipients in a secondary "To" field. The API then handled the blind delivery of the emails, and also did variable substitution for me so I didn't have to transmit all the duplicate content multiple times. The API then handled doing "best practices delivery of the email".

How to "Reply to this email to comment" like Facebook?

A forum-like app I'm working on will send an email notification to the thread starter when a new replied is received. It would be nice if the owner can just reply the email to add a new reply to the thread.
How can I implement the feature, i.e. "reply to this email to comment" like Facebook?
Option A: scan the subject line/body? I don't like it 'cause what if the user modified the subject line by mistake?
Option B: use a unique reply-to e-mail address that links to the thread ID. Is this a common function for mail server? like set up a *#addComment.domain.com ? Or does the app server needs to setup a new email account before sending the email with reply-to?
Any other options?
Thanks!
Using strings in the subject and body can be easily erased by a user of the system.
Use plus addressing (reply+UNIQUEIDENTIFIER#yourapplication.com) as the REPLY-TO address in the mail message. With CFIMAP you can retrieve the messages and parse the TO.
Wildcard domain (replyto#UNIQUEIDENTIFIER.yourapplication.com) is also an option, but if your email server supports plus addressing I would go that route.
You could stuff the thread ID or the parent message ID (the message that is being replied to) in the Msgessage-ID: header of the email, or a custom email header, and put the processing after accepting the message.
However, using custom Reply-To: addresses is quite common.
an option is to embed an identifier in both the subject and the body of the original email. something small, like bit.ly's 6-8 character code. that way, they're less likely to mess it up, and you have the safety of the email body, which most people leave in anyway.
Using a custom email header is not advised as there is no guarantee that any server along the route would not strip it off (or simply fail to pass it on). A friend who worked at a huge email data center for AT&T said the techs there warned him off that idea.
This may also be true of the Message-ID: -- don't know.