Demos
How to Track read emails?
21min
at the bottom of this article you'll be able to find import file containing this ready to use, use case (only few post import configurations needed) video tutorial , on how to import this use case & what needs to be done after importing it why track read emails? email marketing campaigns tracking email opens and clicks can help marketers measure the success of their campaigns and make adjustments to improve their effectiveness sales outreach knowing when a prospect opens an email can help sales teams time their follow up communications and improve their chances of converting the lead job applications tracking when a potential employer opens your email can give you an idea of how interested they are in your application legal notices tracking when a legal notice is opened can help ensure compliance and provide an audit trail for legal proceedings newsletters tracking email opens and clicks can help newsletter publishers understand which topics are most engaging to their readers support requests tracking when a support request email is opened can help support teams prioritize their responses and improve customer satisfaction internal communications tracking email opens can help managers ensure that important messages are being read by their teams and many other scenarios! how to track read emails? by using a tracking pixel! a tracking pixel is a 1x1 pixel image that gets placed in the header or the footer of the sent email so that when the recipient reads/opens the email the image gets downloaded and you can track the downloads of the image obviously, it is important to keep a correlation between the image and the emails sent, so you can uniquely identify each email how to do this with procesio you need to create 2 processes in procesio and 1 webhook the first process sends the email with the tracking pixel in it and logs into a database the sent email the tracking pixel is actually a procesio webhook url that, when downloaded, it triggers the 2nd process; the second process logs the event in the database webhook we need to create first the webhook, by selecting the option โ i want to manually define webhook payload โ you can give it any name you want in the โpayload definitionโ section paste the following json structure and click โgenerate data modelโ {"id" "cbe88532 bf5f 46ee 8c84 b944fe169dda"} now, copy the โwebhook urlโ and save the webhook! process 1 the first process looks like in the following image define the variables that you are going to use in this process as in the following image now configure the actions as follows emailguid ( utilitary/generate guid action) it generates a unique id (guid) for the email that is about to be sent register email ( database/sql server/execute command action) it logs in a database the email that is about to be sent so you can reference it later you will need to define your sql server credentials to connect to a database where to store data in a table exec dbo email register @emailguid = n'<%emailguid%>', @sentto = n'<%emailto%>', @sentcc = n'<%emailcc%>', @sentbcc = n'<%emailbcc%>', @subject = n'<%emailsubject%>', @body = n'<%emailbody%>' this action executes a stored procedure in the database which in turn saves the information to a table to create the required objects in the database, run the following script / object table \[dbo] \[emailssent] / create table \[dbo] \[emailssent]\( 	\[emailguid] \[uniqueidentifier] not null, 	\[senttime] \[datetime] not null, 	\[sentto] \[nvarchar]\(400) null, 	\[sentcc] \[nvarchar]\(400) null, 	\[sentbcc] \[nvarchar]\(400) null, 	\[subject] \[nvarchar]\(1000) not null, 	\[body] \[nvarchar]\(max) not null, constraint \[pk emailssent] primary key clustered ( 	\[emailguid] asc )with (statistics norecompute = off, ignore dup key = off, optimize for sequential key = off) on \[primary] ) on \[primary] textimage on \[primary] go / object storedprocedure \[dbo] \[email register] / \ ============================================= \ description registers an email \ ============================================= create procedure \[dbo] \[email register] ( 	@emailguid uniqueidentifier, @sentto nvarchar(400), 	@sentcc nvarchar(400), 	@sentbcc nvarchar(400), 	@subject nvarchar(1000), 	@body nvarchar(max) ) as begin set nocount on declare @nowtime datetime = getdate() 	insert into dbo emailssent (emailguid, senttime, sentto, sentcc, sentbcc, subject, body) 	values (@emailguid, @nowtime, @sentto, @sentcc, @sentbcc, @subject, @body) end go encode tracking url ( strings/string url encode action) it encodes the payload to be sent via the webhook to the 2nd process string concat ( strings/string concat action) it concatenates the webhook url you copied when creating the webhook and the encoded payload, as shown in the image bellow send email ( send email action) it sends the actual email you will need to define your smtpserver credentials to send emails with procesio keep in mind that you need to mark โbody is htmlโ and in the body, you need to have this <%emailbody%> \<img src="<%encodedtrackingurl%>" width="1" height="1"> where \<img src="<%encodedtrackingurl%>" width="1" height="1"> is the actual tracking pixel, basically adding the webhook url + payload as an image to the email so that the email client will try to download the image triggering the webhook which in turn will trigger the 2nd process to run process 2 the 2nd process looks like in the following screenshot we need to assign the created webhook to this process so that the webhook will trigger this process when an email is read go to the right hand sidebar, to the โwebhooksโ menu and click โassign webhookโ, as seen in the screenshot now, select the webhook you created and give a name to the โlocal variable nameโ now, define the variable โqueryoutโ that you are going to use in this process as in the following image you will notice that the โtrackemailโ variable coming from the webhook is already visible and you will be able to use it in the process now configure the actions as follows track email in db ( database/sql server/execute command action) it logs in a database the email id that was read you will use the same sql server credentials you used in the 1st process to connect to a database where to store data in a table the command is exec dbo emailopened register @emailguid = n'<%trackemail id%>' this action executes a stored procedure in the database which in turn saves the information to a table to create the required objects in the database, run the following script / object table \[dbo] \[emailsopened] / create table \[dbo] \[emailsopened]\( 	\[emailguid] \[uniqueidentifier] not null, 	\[opentime] \[datetime] not null, constraint \[pk emailsopened] primary key clustered ( 	\[emailguid] asc, 	\[opentime] asc )with (statistics norecompute = off, ignore dup key = off, optimize for sequential key = off) on \[primary] ) on \[primary] go / object storedprocedure \[dbo] \[emailopened register] / \ ============================================= \ description registers an email opened operation \ ============================================= create procedure \[dbo] \[emailopened register] ( 	@emailguid uniqueidentifier ) as begin set nocount on declare @nowtime datetime = getdate() 	insert into dbo emailsopened (emailguid, opentime) 	values (@emailguid, @nowtime) end go that is it! now you can run process 1 to send emails directly or from other processes import file use below procesio file, for importing this use case dirctly to one of your workspaces (feel free to create a new workspace dedicted for this example) https //archbee doc uploads s3 amazonaws com/pd o7nzlwdisbwglsha9q/xsndnlcli6qv1txu8iiuw track read emails procesio by using the import file you will obtain this almost ready to use, use case directly to the workspace you won't have to follow all the above mentioned steps but only perform the import & some configuration adjustments depicted in the video below video tutorial on how to import watch below youtube tutorial, in order to do the ncessarly adjustment post import