I'm currently working on getting callbacks/webhooks from Mandrill to record opens/clicks/unsubs/etc into the database.
I'm using Node.js.
Writing the JS has been the toughest part... and I'm having trouble getting my meta-data to be returned. I'm sure its my fault, but thats where I'm at.
Planning to help TFORD & Mark with this when its finished.
jaymer...
--> jaymerTip
Callbacks from Mandrill
Callbacks from Mandrill
Last edited by Jaymer on Sun Nov 17, 2019 9:48 pm, edited 2 times in total.
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.
Jaymer
Aware Programming & Consulting - Tampa FL
Jaymer
Aware Programming & Consulting - Tampa FL
Important Links Here
(reserved for links)
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.
Jaymer
Aware Programming & Consulting - Tampa FL
Jaymer
Aware Programming & Consulting - Tampa FL
Re: Callbacks from Mandrill
Ok, suppose you write a real time listener in Node.js to be subscribed to those callbacks and webhooks. How are you going to inform Aware about such data coming from an email server, so aware can react/do something about it?
Even if you go and write something/message/object to the DB, but then you have to do constant polling from the aware server. Under load, this will kill your Aware server.
Unless you have a better and cleaner way for Aware to listen to your Node.js event handler.
Even if you go and write something/message/object to the DB, but then you have to do constant polling from the aware server. Under load, this will kill your Aware server.
Unless you have a better and cleaner way for Aware to listen to your Node.js event handler.
Re: Callbacks from Mandrill
Ben, for many of my uses, no reason to bother Aware.
Since its Email, I have a OutgoingEmail BO with all emails.
I added some fields for Statistics back from Mandrill, just so they show up in the CRM (Open,Clicked,Bounce,Unsub).
I'm sending a meta-data object in the outgoing email to point to the record ID of the Email, so from Node, I just need to do a simple SQL update to 1 record in OutgoingEmail to update the type of event. I get a JSON string from Mandril, and with this I can parse the Email Row ID to update.
Since its Email, I have a OutgoingEmail BO with all emails.
I added some fields for Statistics back from Mandrill, just so they show up in the CRM (Open,Clicked,Bounce,Unsub).
I'm sending a meta-data object in the outgoing email to point to the record ID of the Email, so from Node, I just need to do a simple SQL update to 1 record in OutgoingEmail to update the type of event. I get a JSON string from Mandril, and with this I can parse the Email Row ID to update.
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.
Jaymer
Aware Programming & Consulting - Tampa FL
Jaymer
Aware Programming & Consulting - Tampa FL
Re: Callbacks from Mandrill
Excellent. Node will work.Jaymer wrote:Ben, for many of my uses, no reason to bother Aware.
Since its Email, I have a OutgoingEmail BO with all emails.
I added some fields for Statistics back from Mandrill, just so they show up in the CRM (Open,Clicked,Bounce,Unsub).
I'm sending a meta-data object in the outgoing email to point to the record ID of the Email, so from Node, I just need to do a simple SQL update to 1 record in OutgoingEmail to update the type of event. I get a JSON string from Mandril, and with this I can parse the Email Row ID to update.
Great integration!
Re: Callbacks from Mandrill
Jaymer,
how do you reference the call back from Mandrill to the Outgoing Email message in AwareIM?
Are you embedding the OutgoingEmail. ID into the email somewhere, and then having it returned by the Mandrill call back or are you using the outgoing java mail message header ID and then somehow matching it up
I haven't worked with Mandril call back before but intend to do so soon, and was hoping to use http://xxxxxxxxx//xxxxxxxx/logonOp.awsp? to handle the call back
how do you reference the call back from Mandrill to the Outgoing Email message in AwareIM?
Are you embedding the OutgoingEmail. ID into the email somewhere, and then having it returned by the Mandrill call back or are you using the outgoing java mail message header ID and then somehow matching it up
I haven't worked with Mandril call back before but intend to do so soon, and was hoping to use http://xxxxxxxxx//xxxxxxxx/logonOp.awsp? to handle the call back
Re: Callbacks from Mandrill
Okay, I should have paid more attention to your previous response, so you are embedding the OutGoingEmail.ID somewhere in the emailI'm sending a meta-data object in the outgoing email to point to the record ID of the Email, so from Node, I just need to do a simple SQL update to 1 record in OutgoingEmail to update the type of event.
Re: Callbacks from Mandrill
howdy
there's no way in hell you can process it through Aware login.
When you setup a webhook, it has to validate. Its clear what they do and expect. I'm not even sure in Aware how you'd force a Response 200, but they ain't gonna be sending stuff to an aware logon in our specific format.
Once you get past Validation, its a real PITA to deal with their Webhook tests.
AND, there's a HUGE time delay between sending a msg and getting webhook feedback, like HOURS. (am querying them soon about this).
But to answer your question, here is a submission via REST to send a message to 2 people, copied from Server Output window:
There are 3 arrays in this JSON.
TO_LIST
MERGE_VARS
META_DATA
I build those strings in SQL SERVER, almost instantly. META_DATA is the actual Email ROWID in SQL (Aware's ID). So when it comes back, I can update it's Opened/Unsub/etc. details.
An email last night to 275 ppl was 66k in total REST JSON length. One of those arrays was 22k.
Can't imagine building this using only Aware.
MANDRILL DOCS/kBase
(personally, I don't like their docs. PepiPost was incredibly easy to follow. This has too many "circular references" and you keep going around thru the docs, knowing you saw something somewhere, but unable to find it.)
intro: https://mandrill.zendesk.com/hc/en-us/a ... ook-Format
format: https://mandrill.zendesk.com/hc/en-us/a ... ook-format
webhook submission - this is from their test. contains 6 events
You really want to parse this with Aware? If not, you'll need to pass it off to a JAVA plugin.
AND HERE IS an actual receipt of ONE real Open event. You can see "metadata" very close to the end:
there's no way in hell you can process it through Aware login.
When you setup a webhook, it has to validate. Its clear what they do and expect. I'm not even sure in Aware how you'd force a Response 200, but they ain't gonna be sending stuff to an aware logon in our specific format.
Once you get past Validation, its a real PITA to deal with their Webhook tests.
AND, there's a HUGE time delay between sending a msg and getting webhook feedback, like HOURS. (am querying them soon about this).
But to answer your question, here is a submission via REST to send a message to 2 people, copied from Server Output window:
Code: Select all
Calling REST URL https://mandrillapp.com/api/1.0/messages/send.json .Parameter string is {
"key": "thekeyxxx333222111",
"message": {
"html": "test",
"subject": "test123",
"from_email": "[email protected]",
"from_name": "Chris",
"to":[{"email":"[email protected]","name":"Aaron","type":"bcc"},{"email":"[email protected]","name":"Allan","type":"bcc"}],
"headers": {
"Reply-To": "[email protected]" },
"track_opens": true,
"track_clicks": true,
"auto_text": true,
"merge": true,
"merge_language": "mailchimp",
"recipient_metadata":[{"rcpt":"[email protected]","values":[{"email_id":"834470"}]},{"rcpt":"[email protected]","values":[{"email_id":"834471"}]}],
"subaccount": "roseville",
"tags": [ "MyCustomTag" ],
"merge_vars":[{"rcpt":"[email protected]","vars":[{"name":"FNAME","content":"Aaron"}]},{"rcpt":"[email protected]","vars":[{"name":"FNAME","content":"Allan"}]}]
},
"ip_pool": "Main Pool"
}
TO_LIST
MERGE_VARS
META_DATA
I build those strings in SQL SERVER, almost instantly. META_DATA is the actual Email ROWID in SQL (Aware's ID). So when it comes back, I can update it's Opened/Unsub/etc. details.
An email last night to 275 ppl was 66k in total REST JSON length. One of those arrays was 22k.
Can't imagine building this using only Aware.
MANDRILL DOCS/kBase
(personally, I don't like their docs. PepiPost was incredibly easy to follow. This has too many "circular references" and you keep going around thru the docs, knowing you saw something somewhere, but unable to find it.)
intro: https://mandrill.zendesk.com/hc/en-us/a ... ook-Format
format: https://mandrill.zendesk.com/hc/en-us/a ... ook-format
webhook submission - this is from their test. contains 6 events
You really want to parse this with Aware? If not, you'll need to pass it off to a JAVA plugin.
Code: Select all
"mandrill_events:[{"event":"hard_bounce","msg":{"ts":1365109999,"subject":"This an example webhook message","email":"[email protected]","sender":"[email protected]","tags":["webhook-example"],"state":"bounced","metadata":{"user_id":111},"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa","_version":"exampleaaaaaaaaaaaaaaa","bounce_description":"bad_mailbox","bgtools_code":10,"diag":"smtp;550 5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipients email address for typos or unnecessary spaces."},"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa","ts":1535736330},{"event":"soft_bounce","msg":{"ts":1365109999,"subject":"This an example webhook message","email":"[email protected]","sender":"[email protected]","tags":["webhook-example"],"state":"soft-bounced","metadata":{"user_id":111},"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa1","_version":"exampleaaaaaaaaaaaaaaa","bounce_description":"mailbox_full","bgtools_code":22,"diag":"smtp;552 5.2.2 Over Quota"},"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa1","ts":1535736330},{"event":"open","msg":{"ts":1365109999,"subject":"This an example webhook message","email":"[email protected]","sender":"[email protected]","tags":["webhook-example"],"opens":[{"ts":1365111111}],"clicks":[{"ts":1365111111,"url":"http:\\/\\/mandrill.com"}],"state":"sent","metadata":{"user_id":111},"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa2","_version":"exampleaaaaaaaaaaaaaaa"},"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa2","ip":"127.0.0.1","location":{"country_short":"US","country":"United States","region":"Oklahoma","city":"OklahomaCity","latitude":35.4675598145,"longitude":-97.5164337158,"postal_code":"73101","timezone":"-05:00"},"user_agent":"Mozilla\\/5.0 (Macintosh; U; IntelMac OS X 10.6; en-US; rv:1.9.1.8) Gecko\\/20100317 Postbox\\/1.1.3","user_agent_parsed":{"type":"Email Client","ua_family":"Postbox","ua_name":"Postbox 1.1.3","ua_version":"1.1.3","ua_url":"http:\\/\\/www.postbox-inc.com\\/","ua_company":"Postbox, Inc.","ua_company_url":"http:\\/\\/www.postbox-inc.com\\/","ua_icon":"http:\\/\\/cdn.mandrill.com\\/img\\/email-client-icons\\/postbox.png","os_family":"OS X","os_name":"OS X 10.6 Snow Leopard","os_url":"http:\\/\\/www.apple.com\\/osx\\/","os_company":"Apple Computer, Inc.","os_company_url":"http:\\/\\/www.apple.com\\/","os_icon":"http:\\/\\/cdn.mandrill.com\\/img\\/email-client-icons\\/macosx.png","mobile":false},"ts":1535736330},{"event":"click","msg":{"ts":1365109999,"subject":"This an example webhook message","email":"[email protected]","sender":"[email protected]","tags":["webhook-example"],"opens":[{"ts":1365111111}],"clicks":[{"ts":1365111111,"url":"http:\\/\\/mandrill.com"}],"state":"sent","metadata":{"user_id":111},"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa3","_version":"exampleaaaaaaaaaaaaaaa"},"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa3","ip":"127.0.0.1","location":{"country_short":"US","country":"United States","region":"Oklahoma","city":"Oklahoma City","latitude":35.4675598145,"longitude":-97.5164337158,"postal_code":"73101","timezone":"-05:00"},"user_agent":"Mozilla\\/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.8) Gecko\\/20100317 Postbox\\/1.1.3","user_agent_parsed":{"type":"Email Client","ua_family":"Postbox","ua_name":"Postbox 1.1.3","ua_version":"1.1.3","ua_url":"http:\\/\\/www.postbox-inc.com\\/","ua_company":"Postbox, Inc.","ua_company_url":"http:\\/\\/www.postbox-inc.com\\/","ua_icon":"http:\\/\\/cdn.mandrill.com\\/img\\/email-client-icons\\/postbox.png","os_family":"OS X","os_name":"OS X 10.6 Snow Leopard","os_url":"http:\\/\\/www.apple.com\\/osx\\/","os_company":"Apple Computer, Inc.","os_company_url":"http:\\/\\/www.apple.com\\/","os_icon":"http:\\/\\/cdn.mandrill.com\\/img\\/email-client-icons\\/macosx.png","mobile":false},"url":"http:\\/\\/mandrill.com","ts":1535736330},{"event":"spam","msg":{"ts":1365109999,"subject":"This an example webhook message","email":"[email protected]","sender":"[email protected]","tags":["webhook-example"],"opens":[{"ts":1365111111}],"clicks":[{"ts":1365111111,"url":"http:\\/\\/mandrill.com"}],"state":"sent","metadata":{"user_id":111},"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa4","_version":"exampleaaaaaaaaaaaaaaa"},"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa4","ts":1535736330},{"event":"unsub","msg":{"ts":1365109999,"subject":"This an example webhook message","email":"[email protected]","sender":"[email protected]","tags":["webhook-example"],"opens":[{"ts":1365111111}],"clicks":[{"ts":1365111111,"url":"http:\\/\\/mandrill.com"}],"state":"sent","metadata":{"user_id":111},"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa5","_version":"exampleaaaaaaaaaaaaaaa"},"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa5","ts":1535736330"
Code: Select all
'[{"event":"open","ts":1536132312,"user_agent":"Mozilla\\/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit\\/537.36 (KHTML, like Gecko) Chrome\\/68.0.3440.84 Safari\\/537.36","user_agent_parsed":{"type":"Browser","ua_family":"Chrome","ua_name":"Chrome 68.0.3440.84","ua_version":"68.0.3440.84", "ua_url":"http:\\/\\/www.google.com\\/chrome","ua_company":"Google Inc.","ua_company_url":"http:\\/\\/www.google.com\\/","ua_icon":"http:\\/\\/cdn.mandrill.com\\/img\\/email-client-icons\\/chrome.png","os_family":"OS X","os_name":"OS X","os_url":"http:\\/\\/www.apple.com\\/osx\\/","os_company":"Apple Computer, Inc.","os_company_url":"http:\\/\\/www.apple.com\\/","os_icon":"http:\\/\\/cdn.mandrill.com\\/img\\/email-client-icons\\/macosx.png","mobile":false},"ip":"70.126.141.227","location":{"country_short":"US","country":"United States","region":"Florida","city":"Tampa","latitude":27.9475193024,"longitude":-82.4584274292,"postal_code":"33601","timezone":"-04:00"},"_id":"443082dac81649978b07f944d251c451","msg":{"ts":1536132236,"_id":"443082dac81649978b07f944d251c451","state":"sent","subject":"My Office Blast 3:18am 275 ppl","email":"[email protected]","tags":["MyCustomTag"],"opens":[{"ts":1536132312,"ip":"70.126.141.227","location":"Florida, US","ua":"OS X\\/OS X\\/Chrome\\/Chrome 68.0.3440.84"}],"clicks":[],"smtp_events":[{"ts":1536132273,"type":"sent","diag":"250 Requested mail action okay, completed: id=0MKsCM-1fxSAz1nwu-0000FE","source_ip":"198.2.180.28","destination_ip":"74.208.5.21","size":2797}],"subaccount":"demo","resends":[],"_version":"DgI4TT6W9EDqtvovn3A3IA","metadata":[{"email_id":"834418"}],"sender":"[email protected]","template":null}}]' }
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.
Jaymer
Aware Programming & Consulting - Tampa FL
Jaymer
Aware Programming & Consulting - Tampa FL
Re: Callbacks from Mandrill
I would love to have this functionality built into Aware, support or some Java savy developer, can you build a plugin (or just sample bsv with instructions) with the entire solution i.e the send + feedback stuff (read, opened, clicked, unsub)? I would pay a small fee for this and surely others as well.
I do however love having everything in Aware i.e not be dependant on external services, node etc etc but I guess it would be difficult to have all of this natively?
I do however love having everything in Aware i.e not be dependant on external services, node etc etc but I guess it would be difficult to have all of this natively?
Henrik (V8 Developer Ed. - Windows)
Re: Callbacks from Mandrill
The SQL is really complex - simple though, but a PITA to figure out.
Here's one example that builds MERGE_VARS JSON string.
I have no idea how I would have done this if I was using MySQL. (unless they have some JSON output support)
And if my only hope was calling an exposed Aware REST service to make JSON for me, I have no idea how that would have worked.
Here's one example that builds MERGE_VARS JSON string.
Code: Select all
ALTER PROCEDURE [dbo].[SP_LeadsBatchToJSON_Mandrill_B]
@UserID int
AS
BEGIN
SET NOCOUNT ON;
declare @sql nvarchar(1000);
DELETE JSON_Mandrill_b;
DELETE JSON_REPLY2 where UserID = @UserID;
BEGIN TRANSACTION;
SET @sql = 'INSERT INTO [JSON_Mandrill_b] SELECT Lead.ID, EmailAddress as ''rcpt'', ''FNAME'', FirstName as ''content''
FROM USERLISTLEADS INNER JOIN
LEAD ON USERLISTLEADS.ps_Lead_RID = LEAD.ID
WHERE (USERLISTLEADS.ps_User_RID = ' + STR(@UserID) + ')'
exec sp_executesql @sql;
INSERT INTO JSON_REPLY2 (UserID, TheJSON)
SELECT @UserID,( SELECT B.rcpt,
(
SELECT 'FNAME' as 'name', content as 'content'
FROM Lead L
WHERE B.theLeadID = L.ID
FOR JSON PATH
) vars
from [JSON_Mandrill_b] B
FOR JSON PATH, ROOT ('merge_vars') );
Update JSON_REPLY2
SET TheJSON = TRIM('{}' from TheJSON)
WHERE UserID = @UserID
COMMIT
END
And if my only hope was calling an exposed Aware REST service to make JSON for me, I have no idea how that would have worked.
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.
Jaymer
Aware Programming & Consulting - Tampa FL
Jaymer
Aware Programming & Consulting - Tampa FL
Re: Callbacks from Mandrill
I would be willing to pitch into this as well. If AwareIM could listen for Webhooks and process the JSON they send, the solution could have broader application than receiving webhooks related to email transactions.hpl123 wrote:I would love to have this functionality built into Aware, support or some Java savy developer, can you build a plugin (or just sample bsv with instructions) with the entire solution i.e the send + feedback stuff (read, opened, clicked, unsub)? I would pay a small fee for this and surely others as well.
Henrik - I'm also big fan of keeping everything in AwareIM. Short of having AwareIM build in some new webhook receiving functionality, I'm planning to further explore Integromat https://www.integromat.com/en/ and Zapier [/url]https://zapier.com/[/url]. Preliminary tests with both Interomat and Zapier show me that they can receive webhooks and parse the JSON. With me prelim look, it appears both can send the parsed read receipts, opens, clicks, etc to AwareIM, but in two different ways:hpl123 wrote:I do however love having everything in Aware i.e not be dependant on external services, node etc etc but I guess it would be difficult to have all of this natively?
1) Integromat can send http transactions, so I think it MIGHT be able to pass the parsed data to a service exposed by AwareIM service via URL parameters.
2) Zapier can send the parsed data to MySql. AwareIM should be able to monitor a MySql table as an external table and process.
Tom - V8.8 build 3137 - MySql / PostGres
Re: Callbacks from Mandrill
Jaymer, thanks for the detailed response , its certainly an interesting concept but way to complex for me, MSSQL is also slightly foreign to me
This is a copy of the tomcat log responding to a JangoEmail callback, as you can see the response is 200 . which I understand Mandrill requires
9.0.149.203 - - [05/Sep/2018:19:09:58 +0200] "GET /MyApp/logonOp.awsp?domain=CRM&userName=Jango&password=12345&ProcessName=JangoCallBack&ObjectName=JangoCallBack&EventType=Open HTTP/1.1" 200 -
This is the url configured on the JangoMail callback url setup
"https://111.111.111.1/MyApp/logonOp.aws ... goCallBack"
If one can find a way to embed(prepend) the above url on the Mandrill webhook , with them adding "&EventType=Open" or "&whatever" it could work
In my mind this functionality is in AwareIM and is the simplest and shortest route to get call back functionality working
A few years ago I had callbacks working with AwareIM and the JangoEmail Transactional email interface using their smtp relay server with callbacks. It worked very wellthere's no way in hell you can process it through Aware login.
When you setup a webhook, it has to validate. Its clear what they do and expect. I'm not even sure in Aware how you'd force a Response 200, but they ain't gonna be sending stuff to an aware logon in our specific format.
This is a copy of the tomcat log responding to a JangoEmail callback, as you can see the response is 200 . which I understand Mandrill requires
9.0.149.203 - - [05/Sep/2018:19:09:58 +0200] "GET /MyApp/logonOp.awsp?domain=CRM&userName=Jango&password=12345&ProcessName=JangoCallBack&ObjectName=JangoCallBack&EventType=Open HTTP/1.1" 200 -
This is the url configured on the JangoMail callback url setup
"https://111.111.111.1/MyApp/logonOp.aws ... goCallBack"
If one can find a way to embed(prepend) the above url on the Mandrill webhook , with them adding "&EventType=Open" or "&whatever" it could work
In my mind this functionality is in AwareIM and is the simplest and shortest route to get call back functionality working
Re: Callbacks from Mandrill
coolACDC wrote: This is the url configured on the JangoMail callback url setup
"https://111.111.111.1/MyApp/logonOp.aws ... goCallBack"
If one can find a way to embed(prepend) the above url on the Mandrill webhook , with them adding "&EventType=Open" or "&whatever" it could work
I think it would be easy to do that...
Node.js is VERY simple to install/implement.
I'm sure it can grab the JSON from Mandrill and send it to Aware.
Dealing with or contacting Mandrill is a non-starter, IMHO.
So, if its just taking their payload and as you say, prepend something to it and resend to another destination, its doable.
I'll help you with this from my side and my Node.js server.
If you already have Mandrill, you could add my server as a Webhook, and I'll resend the payload to you, OR
if you're not that far yet, I'll send some msgs out my system to make callbacks come in to send you for testing/proof of concept.
Also,
i have a similar callback on Twilio.
GET
https://www.xyzzy.com/TwilioWebHook/res ... o/softserv
but its handled by a Java Web Application (.war)
Never thought about doing what you did with jango.
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.
Jaymer
Aware Programming & Consulting - Tampa FL
Jaymer
Aware Programming & Consulting - Tampa FL
Re: Callbacks from Mandrill
ACDC
Actually, its easier than I thought.
As shown above, you don't need all the crap from Mandrill.
Once I parse out the single ID field, then its a simple GET function to send the Logon string PLUS your variable to logonOp.awsp
Actually, its easier than I thought.
As shown above, you don't need all the crap from Mandrill.
Once I parse out the single ID field, then its a simple GET function to send the Logon string PLUS your variable to logonOp.awsp
Click Here to see a collection of my tips & hacks on this forum. Or search for "JaymerTip" in the search bar at the top.
Jaymer
Aware Programming & Consulting - Tampa FL
Jaymer
Aware Programming & Consulting - Tampa FL
Re: Callbacks from Mandrill
A better plugin then might be to create a plugin for one of these services (or IFTTT)? If that would solve the email "problem" in some way + then we would also have a bunch of other integrations available. I would chip in for that.tford wrote:I would be willing to pitch into this as well. If AwareIM could listen for Webhooks and process the JSON they send, the solution could have broader application than receiving webhooks related to email transactions.hpl123 wrote:I would love to have this functionality built into Aware, support or some Java savy developer, can you build a plugin (or just sample bsv with instructions) with the entire solution i.e the send + feedback stuff (read, opened, clicked, unsub)? I would pay a small fee for this and surely others as well.
Henrik - I'm also big fan of keeping everything in AwareIM. Short of having AwareIM build in some new webhook receiving functionality, I'm planning to further explore Integromat https://www.integromat.com/en/ and Zapier [/url]https://zapier.com/[/url]. Preliminary tests with both Interomat and Zapier show me that they can receive webhooks and parse the JSON. With me prelim look, it appears both can send the parsed read receipts, opens, clicks, etc to AwareIM, but in two different ways:hpl123 wrote:I do however love having everything in Aware i.e not be dependant on external services, node etc etc but I guess it would be difficult to have all of this natively?
1) Integromat can send http transactions, so I think it MIGHT be able to pass the parsed data to a service exposed by AwareIM service via URL parameters.
2) Zapier can send the parsed data to MySql. AwareIM should be able to monitor a MySql table as an external table and process.
Henrik (V8 Developer Ed. - Windows)