Expand my Community achievements bar.

SOLVED

Create a custom SOAP method that would send a delivery to recipients passed in the parameter (list of IDs)

Avatar

Level 2

Hi

I am wondering if it's feasible to create a custom SOAP method that would trigger a delivery from a delivery template to the recipients whose IDs would be passed in the method as parameter (I guess a comma separated list in single parameter)?

Any hints on how to achieve that

Kind regards

1 Accepted Solution

Avatar

Correct answer by
Level 10

Hi szymons,

Yes, you can do it the same way as MessageCenter does for transactional messages rtEvents.
https://docs.campaign.adobe.com/doc/AC/en/MCE_Introduction_Event_description.html

Your custom SOAP method can be written in Javascript or in JSSP, see documentation.

You can use either XML format or JSON format for global parameters (or other formats but not recommended).

For your recipient-id list, you could only use comma delimited strings for every recipient id and use Javascript split function, but I recommend you to use JSON syntax (JSON.stringify and JSON.parse), so you will get an array for your recipientId list.

Then, if you don't use MessageCenter, please call the API JS method nms.delivery.SubmitNotification with a continuous delivery instead a normal or recurrent delivery and its SubmitDelivery API, in order to improve performance and management.

Regards
J-Serge

View solution in original post

4 Replies

Avatar

Correct answer by
Level 10

Hi szymons,

Yes, you can do it the same way as MessageCenter does for transactional messages rtEvents.
https://docs.campaign.adobe.com/doc/AC/en/MCE_Introduction_Event_description.html

Your custom SOAP method can be written in Javascript or in JSSP, see documentation.

You can use either XML format or JSON format for global parameters (or other formats but not recommended).

For your recipient-id list, you could only use comma delimited strings for every recipient id and use Javascript split function, but I recommend you to use JSON syntax (JSON.stringify and JSON.parse), so you will get an array for your recipientId list.

Then, if you don't use MessageCenter, please call the API JS method nms.delivery.SubmitNotification with a continuous delivery instead a normal or recurrent delivery and its SubmitDelivery API, in order to improve performance and management.

Regards
J-Serge

Avatar

Level 2

Hello Jean Biron

Thanks for the hints, it's been really helpful.

Do you know perhaps what is the char limit in the parameters passed? There might be quite a bit of IDs passed there and I'm wondering if fitting them in single parameter delimited with comma is right approach.

Avatar

Level 10

Hi Szymons,


When you implement the custom method, you define a parameter for ID list.
Either it will be a varchar and you are limited by the underlying RDBMS (such as varchar(4000) as common, or varchar(8000) and equivalent nvarchar etc).

So for storing the list value for a varchar(4000), it is 363 values that you can put, if comma separated. If it is JSON, well a bit less, and for XML lesser.

So either you split your API calls into N calls of 363 values of ID.


Or you use a TEXT / BLOB column type, that is said memo type or XML type in Adobe Campaign, it means very large (in GB) value so no problem of length for very long content as parameter (as for MessageCenter rtEvent context parameter).

Regards

J-Serge

Avatar

Level 2

Hi J-Serge

thanks for inputs, much appreciated.

How do I re-define the length of string in the method declaration in schema if the param element doesn't allow length as attribute?

Strange thing is that I just sent more than 30 000 chars in pure "string" in param and it went through without problem. Sky is the limit? Unlikely for a string I suppose.