Expand my Community achievements bar.

How to download unique mirror link for each recipient?

Avatar

Level 4

I have a requirement to download the mirror link of each recipient. The link which I see on left bottom of Delivery tab of a Email Delivery.

14 Replies

Avatar

Level 10

Hello ckumari12,

The mirror page is generated for a (delivery / message) couple, so it is not unique for each recipient. It means, if you send 3 deliveries to a contact, this contact will get 3 mirror pages, one by delivery message he has been targeted for.


The mirror page is usually generated and kept for a duration defined in the delivery property (validity period). It takes resources on the web server (MTA or dedicated web server) so please take care, if you want to raise the default value, check the server resources.

If you need to do it programmatically (Javascript code), please use the GetMirrorURL method of nms:delivery, and do loops on the dedicated deliveries/messages to list them and act accordingly, for instance to write them in a file, doing a report or whatever you need.
MirrorPage is based on several fragments of messages, but it is easy to manage with the GetMirrorURL method, don't do it using the nms:MirrorPageInfo and nms:MirrorPageSearch, in my opinion.

If you know how to achieve forms (AC XML standard forms), you can manage to display a list of these URLs quite easily, by adding a tab to a delivery, or by doing a specific navtree node for displaying them. In that case, use this extract of nms:delivery xml form below, to implement your own form list convenient for your business case; the idea is to use the soapCall to GetMirrorURL and retrieve easily the information you are looking for:

        <input discardReadOnly="true" img="xtk:html.png" label="Afficher la page miroir de ce message..."
               prebuildSubForm="false" type="subFormLink" xpath=".">
          <form img="xtk:html.png" label="Contenu de la page miroir du message sélectionné">
            <enter>
              <soapCall name="GetMirrorURL" service="nms:delivery">
                <param exprIn="@id" type="int"/>
                <param exprIn="[/ignored/@selectedMessage]" type="string"/>
                <param type="string" xpathOut="/ignored/@mirrorPageUrl"/>
              </soapCall>
            </enter>
            <input type="browser" urlMode="true" xpath="/ignored/@mirrorPageUrl"/>
          </form>
        </input>
        <container type="visibleGroup" visibleIf="EV([mailParameters/@needMirrorPage], 'yes')">
          <static type="warning">Le chargement de la page miroir peut prendre un certain temps.</static>
        </container>

Regards

Jean-Serge

Avatar

Level 4

Thanks Jean for your response.

It seems I was not very clear in my question. I want to download mirror link of a delivery sent to multiple recipient. I have used GetMirrorURL method in my delivery.

For example.. I have sent an email to 10 recipients in an email delivery. So, I want to download these 10 unique mirror links sent to these 10 recipients. and later ,send SMS to these recipients with mirror link embedded into the SMS text.

Avatar

Level 10

Hi ckumaril,

Please share a screenshot of your workflow, with details such as:

  • request activity to target recipients of the 1st mail delivery
  • Javascript activity code to prepare the targetData with your loop with GetMirrorURL as I explained you in my 1st post
  • personalisation code in your SMS delivery

So we can help you on what you can't achieve correctly.

And please also tell us the AC version/build (though here I don't think it is important, it seems a misconception issue or information lacking rather than a product issue).

Thanks in advance.

Regards.
Jean-Serge

Avatar

Level 4

Hi,

Below is the screenshot of the recipient who received the email in a delivery.

deliverylist.jpg

In this screenshot, at the bottommost we have a link "Display the mirror page for this message". When a select one recipient, I can see personalized email content. When I select another, I can see email content with personalized message of that recipient.

The browser window which opens and on right clicking and selecting the properties, I can see the URL.

mirror link customer 1.JPG

This URL is different for different recipients.

I want all the URLs for all the recipients of a particular delivery.

Source of the Link to Mirror page personalization blocks :

html source - Copy.JPG

<%

if ( document.mode != 'mirror' && document.mode != 'forward' ) { %> Images not downloading? <a href="<%@ include view='MirrorPageUrl' %>" _label="Mirror Page" _type="mirrorPage">click here</A> for best view <!--</FONT></P>--><%

} %>

linkto mirror page.JPG

Avatar

Level 10

Hi ckumaril,

Please read again my post of 16th Aug, I gave all indications to do it by Javascript (workflow or webApp) or SOAP call if you prefer to do it with an AC form, depending on your needs; and again on 17th Aug, about the Javascript code principle you have to write if you do by script.

On 16th Aug you wrote that you used GetMirrorURL method in your delivery, but I think you mislead a bit: in the delivery JS code that you gave today 28th Aug, it is the customization/personalisation block MirrorPageUrl (used to generate MirrorPage content on the fly), not the JS method that I was talking about.

Again, may you share your Javascript code of your workflow, if you have so ?

Regards
J-Serge

Avatar

Level 2

Jean-Serge,

Are you able to explain the GetMirrorURL method in depth?

Avatar

Level 10

Hi ckumaril,

Were you able to have a look at Jean-Serge's explanations?

Let us know,

Florent

Avatar

Level 10

Hi ckumaril,

Could you have a look at what Jean-Serge suggested?

Let us know,

Florent

Avatar

Level 4

Hi Jean,

I can see the declaration of the GetMirrorURL method in the delivery schema but I could not find it in delivery.js. Is there any way to find the definition of this method?

Thanks in advance.

Saikat

Avatar

Level 10

Hi Saikattk,

The documentation is the JSAPI.chm subject to license. Do you own it?

Regards.
J-Serge

HI Jean-Serge

This is really interesting, do you have an example of the call in Javascript for Workflows?

I'm using this

nms.Delivery.GetMirrorURL(1232,3444,link);

is that right?

Thanks in advance,

Giuseppe.

Avatar

Level 10

Hi Giuseppe,

Unfortunely, the JSAPI.chm documentation is quite light for this method but only 2 arguments.

Well, I give it below, to avoid further misleading. florentlb​ feel free to suppress it if it is not allowed to share, as far as I understand.

GetMirrorURL

Obtains the URL of an HTML mirror page.

String url = GetMirrorURL (
    Number      deliveryId,
    String      message
)

Parameters

deliveryId

Delivery identifier

message

Message ID

Return value(s)

url

Mirror page URL

Regards
JS

Avatar

Employee

Hi Giuseppe,

I was able to use it like this inside JS

var url = nms.delivery.GetMirrorURL(xxxx,"yyyy")

logInfo('mirror Url is: ' + url)

Where xxxx = Delivery ID

yyyy = BroadLog ID

This is will give you the mirror page of a particular recipient not all.

Regards,
Adhiyan

Avatar

Level 1

Hi Adhiyan and Jean-Serge,

Thanks it works fine!

Regards,

Giuseppe.