0

I am Adding new subscriber to marketing cloud from another system. Some of the subscriber are hard bounced and have a number of bouncecount.

I can create subscriber with Active , Held and Unsubscribe. But cannot create subscriber with bounce status.

Thus i am creating subscriber with active status and then logging bounce event. I assume

  1. This will update the subscriber status to bounce
  2. Also the dataview and other system will show the bounce info.

For creating bounce event , i am using wsproxy . This is my code:


<script runat="server" language="JavaScript"> 
  Platform.Load("core", "1.1.1");
  var MID = Platform.Request.GetFormField("MID");
  var BounceCategory = Platform.Request.GetFormField("BounceCategory");
  var BounceType = Platform.Request.GetFormField("BounceType");
  var SubscriberKey = Platform.Request.GetFormField("SubscriberKey");
  var SMTPCode = Platform.Request.GetFormField("SMTPCode");
  var SMTPReason = Platform.Request.GetFormField("SMTPReason");
  var EventType = Platform.Request.GetFormField("EventType");
  try
  {
    var prox = new Script.Util.WSProxy();
    
    prox.resetClientIds();
    prox.setClientId({ "ID": MID });
    var today = new Date();
    var EventDate_ToSet = today.getDate();

 var contentJSON = {
    "Client":{"ID":MID},
    "SubscriberKey":SubscriberKey,
    "EventDate":EventDate_ToSet,
    "SMTPCode":SMTPCode,
    "BounceCategory":BounceCategory,
    "SMTPReason":SMTPReason,
   "BounceType":BounceType,
   "EventType":EventType,
   "CustomerKey":"Test123"
    };
    
    var res = prox.createItem("BounceEvent",contentJSON);
    Write(Stringify(res));
    
  }catch(e)
  {
    var exError ={
      "Error":e
    };
    Write(Stringify(exError));
  }
</script>

When testing this using postman , i am getting following error

{"Error":{"message":"Error executing retrieve call.","description":"ExactTarget.OMM.FunctionExecutionException: Error executing retrieve call.\r\n Error Code: OMM_FUNC_CONTEXT_ERR\r\n - from Jint --> \r\n\r\n --- inner exception 1---\r\n\r\nExactTarget.OMM.InvalidFunctionParameterException: Null filter value supplied.\r\n Error Code: OMM_FUNC_CONTEXT_ERR\r\n - from OMMCommon\r\n\r\n\r\n\r\n"}}

do you know what i am doing wrong.

3
  • 2
    You can't create BounceEvents. They are generated based on the results of the send. Commented Dec 4, 2021 at 20:36
  • Oh , thanks adam. Have you faced a scenario before when you are trying to migrate from other marketing automation and subscribers were bounced. how did you handle it , what were the approach you took? Commented Dec 4, 2021 at 21:16
  • Also how to identify which object you can create and which you cannot. Commented Dec 4, 2021 at 21:29

1 Answer 1

2

Bounce events are handled in the backend and you cannot inject them via API.

UnsubEvents (see "logUnsubEvent" method) are the exception to all of the events stored in the email data views (e.g. open, click, bounce, sent) in that they are the only ones you can manually create - which from a conceptual standpoint makes sense as all the others are means of behavioral tracking and to create them you'd have to make someone "behave accordingly". An unsubscription, if you will, is the only case reliant on the expressed will of the recipient.

A bounce is not even tracking the user, but the result of a purely technical behavior.

Obviously, it will be a pretty bad idea to willingly provoke the recipient systems to repeat their behavior of reporting a bounce just to populate a data view with proxy bounce behavior. If it's not obvious, then suffice it to say, it can mess up your sender reputation. Recipient systems want you to care about not creating unnecessary server load for them. This would be the exact opposite.

So, typically I would store legacy bounces on a auto-suppression configuration (ASC) where they do not consume contacts but block sendouts. For bounces, you likely want to set it to block "both", i.e. transactional and commercial emails: Do Contacts in the Auto-Suppression lists or Global Suppression List count towards Contact Limit?

Legacy unsubscriptions should go on another list with only commercial scope, so that re-subscription via double opt in (reliant on a transactional email) is possible.

Generally I think it's a good idea to make sure you include at least one custom "source" column so you can keep track where all this magical data on your ASC came from.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .