Skip to content

Instantly share code, notes, and snippets.

@Vapok
Vapok / 0.bounce.json
Created Apr 8, 2019
SUGCON EU 2019 - The Wheels on the Rebus go Queue, Queue, Queue
View 0.bounce.json
[
{
"campaign_id": "1234",
"contact_identifier": "1234",
"email": "pnavarra65456@connectivedx.com",
"email_address_history_entry_id": "1234",
"event": "bounce",
"instance_id": "1234",
"ip": "167.89.106.58",
"message_id": "1234",
@Vapok
Vapok / 0.ContactProcessingProvider.cs
Last active Dec 15, 2016
Pipelined Contact Processing Provider
View 0.ContactProcessingProvider.cs
/*
NOTE THAT THIS IS THE DECOMPILED ContactProcessingProvider
This is actually exposing a bug in the ContactProcessingProvider.
The ContactProcessingProvider is used when a CSV File is uploaded through List Manager.
The bug is that the MapContact() method is the meeting point between the uploaded CSV data,
and the existing contact record. Looking at the original method, you'll see that the existing
contact information is completely disregard, and the contact template created from the CSV file
is utilized. This overwrites any and all data in Mongo for that contact record, including
OTHER facet fields that might have been previously populated, but not part of the CSV file.
@Vapok
Vapok / ExternalField.cs
Last active Dec 2, 2016
Sitecore Complex Processor Example - This adds a processor to the EXM redirectURL pipeline, so that when a URL is redirected out of an email, additional URL query params, such as UTM tags can be captured. -- This is an example of created a complex processor with multiple types of fields representing different actions.
View ExternalField.cs
public class ExternalField : RedirectUrlPipelineExternalField
{
public const string NameAttributeLabel = "name";
public const string CarryoverAttributeLabel = "carryover";
public const string TypeAttributeLabel = "type";
public override string Key { get; set; }
public override string Value { get; set; }
public override string KeyRef { get; set; }
public override bool CarryoverValue { get; set; }