Create an email tracker - email-analytics

I thought I would find tons of information on the subject but somehow the implementation of email tracking seems to illude me on the web. I understand that there is the so-called email tracking pixel that you can add to an html email. I suppose the src attribute of this image (pixel) would point to a website action or api that would note the opening of the email, etc. However this seems too easy for there to be email services that charge a ton of money to track emails.
I need to implement my own email tracking and am wondering has anyone implemented an email tracking and what are the caveats to it? I am not looking for specific implementations in php, ruby or asp.net, although such would be more than welcomed. I am more looking for the basic principals and approaches to such an implementation.

Related

How would I go about developing a program that automatically sends an email with the tracking number to a customer using EasyPost API?

I'm a fairly new web developer and I have an ecommerce website that integrates EasyPost to create and print shipping labels.
EasyPost has an API. Also, in each shipping label, I see a JavaScript object (I think) that displays buyer_address... "email": "example#gmail.com",, which tells me that the email information is there.
My question is somewhat general in scope: What steps would I need to take to go about creating this automation? The website is built in Webflow, so I don't really have a "codebase" or "repository" to store whatever code is needed to build the automation.
Since the buyer email is making it into EasyPost with integrations already in place, I feel that I could create a simple program that emails the tracking number to the buyer email every time a label is generated, or perhaps when package is shipped, without the program needing to interact with Webflow or other integrations.
I attempted using Zapier, as well as Make.com. Neither worked, and OrderDesk doesn't have a way to send tracking number emails.
It looks like Webflow has some kind of support for Webhooks (https://webflow.com/feature/create-webhooks-from-project-settings). EasyPost offers webhooks for free as an add-on service. Basically, with webhooks, EasyPost would send tracking events to Webflow proactively, but Webflow (or you) would need to manage the logic for what to do with those tracking events after they are delivered.
EasyPost Webhook Guide
I'm unaware of any off the shelf products that could do this for you without writing any code. We have a guide that details how you might accomplish this with Ruby (you could then follow this as an example for any other language): https://www.easypost.com/email-tracking-tutorial
A few suggestions:
Integrate something into Webflow if possible (I'm unfamiliar with the platform so couldn't say).
Build a simple script that runs on a schedule (cronjob) that retrieves your trackers from EasyPost and sends an email to customers if they have not yet received one. To your point, this approach wouldn't require interacting with Webflow at all and could be done with some local code running on a server and just your EasyPost API key.
I've created a simple UI for EasyPost: https://github.com/Justintime50/easypost-tools-ui, it could be interesting to add this particular use-case as a feature to that project. If you're interested, feel free to open an issue on GitHub for the repo listed here and I'd consider it.
You'd use easypost's API webhooks, to detect when shipment tracking information is provided, or package information is updated.
https://www.easypost.com/docs/api#trackers
It looks like it has a lot of states, so you can keep the client updated regarding the package status from the moment the tracking # is assigned;
EZ1000000001 pre_transit
EZ2000000002 in_transit
EZ3000000003 out_for_delivery
EZ4000000004 delivered
EZ5000000005 return_to_sender
EZ6000000006 failure
EZ7000000007 unknown
You can install webhooks from these docs.
To send the email, you can use an automation service e.g. Make to capture those webhook events, and then compose and send an email to that customer. I like MailJet for that purpose, because it has excellent template support and you can send from your own company domain. But there are many email-sending options.
A bigger challenge, maybe, is getting the email address to send to. I didn't spot it glancing through the Trackers or Shipments data structures, and I am primarily seeing physical address info.
If EasyPost is not tracking the customer's email with the shipment, you may have some challenge in that you'd need to capture the client info through Webflow's order webhooks, and then associate that with EasyPost's shipmentid, and store those in a reference table.
Many automation services offer database-like functionality for this purpose, or you could use e.g. google sheets ( columns webflow OrderID, easypost ShipmentID, customer Email ) or airtable for that purpose.
But you'd have to look into the Easypost integration as well, and you may need to make that integration manual so that you can acquire all 3 of those pieces of information at the same point in your business data flow.

Setting up email series in mailgun

I need to set up series of emails with time delays in mailgun.
I'm not sure this is possible without connecting to a CRM like ActiveCampaign, Mailchimp, etc.
If it's possible, can anyone share how it works?
Thanks in advance.
Mailgun is a transactional email service that gives you the ability to send emails from your own web applications. If you want to create a drip campaign like you mentioned, you’d have to add such logic to your web application either through a cron-like task or similar.
There is Mailjet from the same company that offers email automation (another name for drip emails). While I don’t have hands on experience with Mailjet like I do Mailgun, it should be a WYSIWYG interface like what you’re interested in.
At the end of the day it really comes down to what you’re after. Do you want to add email sending to your own applications where you design every aspect of the sending and scheduling logic, or do you want a tool available and ready to go.
Best,

Freshdesk: Automating 'score' emails

Background: I have little coding experience (not API savvy) and would preferably use an automation tool for this but hope for some guidance in the best way to complete the task. '
We need to send a 'response' (number of emails sent by an agent) score at least twice a day to agents so they can gauge their efficiency. As an alternative we can build up a dashboard to enable easy viewing of this information.
Question: How do I go about sending emails to each agents gmail account with the number of responses completed on Freshdesk that day? Can this be done with a Zapier connection to googlesheets and then forming a googlescript? Would it be easier to set up a live dashboard displaying all agents scores and if so how would you recommend doing this?
Sending emails would be tough given that most email clients (gmail, outlook, ...) have stricter rules on what lands in inbox to avoid spamming.
But you can build a dashboard in Freshdesk to show this information. The sdk has default support for most things you'd need.
Here's a blog post of a sample dashbaord app in Freshdesk: https://medium.com/freshworks-developer-blog/building-a-full-page-app-on-freshdesk-5ce17524277f

Mailchimp API: Add emails to my app's users' email lists

Is it possible to use Mailchimp API to subscribe emails to the lists of MY USERS' Mailchimp Accounts and not my own?
Basically I have a web app, and users collect emails of various subscribers through this app. I then want them to be able to click a button and subscribe all those emails to their lists.
I've looked at Mailchimp's API - particularly the /lists/subscribe and the /lists/batch-subscribe methods. However so far it appears that these will only work for your own Mailchimp account and not for remote users' accounts.
Can someone please tell me whether what I'm trying to achieve is possible with Mailchimp's API?
You would need to execute the api-calls with your users' api-key, which would mean that you execute the calls with their credentials.
There are three different ways to get their api keys, with different practicality levels.
You guess. They look like guids without dashes, and some information about which datacenter it is associated with. Some easy (and somewhat bad) calculations indicate that there are 2^128 api keys in every datacenter, so this will consume both cpu- and network-resources, and invoke the rage of the Mailchimp. The linked image shows him on a good day. He won't be as pleasant if you choose this alternative. Dont do this.
You ask, in an evil way, for their username/password. This is bad since it will give you to all accounts those credentials works with. This would also give you access to stuff that aren't available using api calls (like payment stuff). This wont work at all if your user is intelligent administrators that are using AlterEgo, the two-factory security alternative. This alternative is less bad than blindly guessing, but still provides too much access, if it works at all.
You ask, in a user-friendly way (with perhaps some quick tutorials), for the user to generate an api-key in mailchimp to provide to you. This is the Good Alternative (tm).
You may choose any implementation as long as you choose number three.

Make sent email functionality like github

i'm using Rails 3.2 and i come cross a problem to find solution like github email system.
I want to make functionality in my Rails app Forum like if there are 10 members of one forum group and if any one reply through email the reply quotes should be post on all forum groups.
For example if we are 4 persons work on a github repo. And when one email come to all persons and if anyone reply of mail using gmail reply link the email goes to all persons who are working on this repo.
some forums also use this functionality.
But i'm thinking that how control come to my app through gmail when anyone reply through gmail or anyother mailing server. i'm using gmail account currently.
Any ideas , blog posts ,refrences?
Thanks
Basically you're asking, "how can I have dynamically generated and maintained email lists?", right? This is a deep, deep problem space. I built just such a system a few years back, and it was a nightmare. Email is very complicated. Doing mailing lists right is very, very hard. You need to deal with:
Filtering out out-of-office responses
Re-writing the emails to resend them
Setting the proper mail headers
Dealing with attachments
The hundred and one types of email encoding
Outlook... oh god, Outlook
It's not an easy problem to solve. My recommendation would be to google around for a 3rd party provider with a good email list management API that you could pay to handle this for you.
Rolling your own would be a last resort...