You are currently viewing documentation for Linnworks Desktop, if you are looking for Linnworks.net documentation, click here.






Email Notification Configuration and Automation

Overview

Linnworks Order Management and Stock Control system is capable of generating and sending automated HTML emails when an order is despatched, returned, exchanged or resent. In addition Linnworks can attach invoice and return form as PDF to the email generated. This documentation describes how to set this functionality up.

Setup

  • To access the email notification configuration go to Settings > Email Notification;
  • Click Enable Email Notification;
  • You will need to specify your email SMTP server. 
  • This information is readily available from your email provider or ISP;

  • Delay between send ~ This gives the abiltiy to throttle the emails sent from Linnworks by use of delaying sending each email by the time entered in Seconds

Additional Email Accounts

It is possible to setup multiple email accounts, which will allow outgoing email to be tied to a Source/SubSource by a condition.

  • Click Additional Email Accounts  (Fig 1.1)
  • Enter an Account Name  (Fig 1.2)
  • Click OK
Fig 1.1 Additional Email   Fig 1.2 Account Name
  • Enter required SMTP settings for account (Fig 2.1)
  • Click OK
  • Click Save on Email Sender Configuration
Fig 2.1 Settings 


Configuration

  • There are several template types available in the list of Templates. Each template type is wired to a specific event in Linnworks (i.e. Order Processing, Return Booking etc)
    • Dispatch Notification Email – triggers email generation when an order is Processed
    • Return Receipt – triggers when an order item is being returned
    • Order Items Resend notification – triggers when you create an order item is Resent
    • Order Item Exchange notification – triggers when you create and an order item exchange
    • Return booking – triggers when you Book an Order Item for return
    • Order item exchange Booking – triggers when you book an Order Item for exchange
    • Late shipping communication (manual mailshot) – this template allows you to generate mailshots for Open Orders screen by right clicking on the multiple orders. This template uses order information to populate its internal variables.
    • Custom mailshot to open orders (manual mailshot) – the template allows you to specify any text in the mail template and generate a manual mailshot from open order book, much like Late shipping communication but this template does not require order data and therefore works a lot quicker than late shipping. For details on configuring Custom Mailshots can be found here
  • To Enable the template double click on the red/green dot. Red- disabled, Green – enabled
  • To Edit the Template double click on the template name in the grid.

Editing templates

Things to know about the email template

  • Email template can be a plain text or HTML formatted (meaning that you can create HTML e-mails);
  • Email template has data tags encapsulated in [{ }]. The data tag is a variable which is replaced with a value from the order the email is generated for. For example [{ORDER.CFULLNAME}] will output the customer name;
  • There is a evaluation engine which enables you to programmatically define the output. For example, the following expression
EVAL<N2[1+2]>

will output 3 when the email is generated.

  • You can evaluate a data tag inside the evaluation expression and output a conditional text. For example, the following expression
EVAL<IIF["[{ORDER.SOURCE}]"="EBAY","Order is from eBay","Order is not from eBay"]>

will output Order is from eBay if the order source equals EBAY, otherwise will output Order is not from eBay.

  • You can have iteration for order all items, for example
FOREACH(OrderItems){BEGIN}
[{ORDERITEMS.ITEMNUMBER}] - [{ORDERITEMS.ITEMTITLE}] x [{ORDERITEMS.NQTY}]
{END}

will output the list of all order items as OrderItemNumber – Order Item Title x Quantity.

You can have multiple templates for a single template type. Each additional template will be conditional. You can specify conditions as direct logical function, for example

Source='EBAY' or Source='AMAZON'

will apply this template only if this order is from Amazon or eBay.

  • The conditions are not the same as evaluation expressions and their usage syntax is a little different (see remark for examples and list of available fields);
  • Each template type must have Default template. The default template cannot have conditions and will be used if none of the conditional templates qualify to the condition specified when the email is generated;
  • You can disable and enable the templates. If you disable the default template and none of the conditional templates qualify – the email will not be generated at all;
  • You can set the system to prompt you to View and Edit the email before it is generated;
  • Each email template can have PDF invoice attachment (see PDF Invoice Attachment section);

Editing

Double click on the template type you want to edit in the Templates grid.

Use of an Alternative email address

Once an additional email account has been configured (as shown above) it is possible to select which account is used for sending

  • Select the required Email Account  from the drop down  (Fig 3.1)
  • All emails that match the condition will use the selected account
Fig 3.1 Additional Email   

 

Use menu bar to access the data tags and iterations.

menu_bar.png

foreach_button.jpg - Iterations. Inserts FOREACH()<>
Note: when using inside HTML formatted email edit the FOREACH to look like.

FOREACH(OrderItems){BEGIN}
{END}

data_tag_button.jpg - Inserts a data tag. Each data tag refers to a data value in the order you are generating the email for. The data tags are arranged by tables they belong to.

EVAL_button.jpg - Inserts evaluation tag EVAL<>
Note: When using inside HTML formatted email, change the tag to.

EVAL{BEGIN}
{END}

Example of the Despatch Notification email template

Dear, [{ORDER.CFULLNAME}].

Thank you for your purchase with us through [{ORDER.SOURCE}] order reference [{ORDER.REFERENCENUM}], our system order number [{ORDER.NORDERID}] on [{ORDER.DRECEIEVEDDATE}].

I am glad to inform you that the order has been despatched with [{ADD-IN.SHIPPINGMETHOD}] on [{ORDER.DPROCESSEDON}]

You order details:

[{ORDER.CSHIPPINGADDRESS}]

Products:

FOREACH(OrderItems)<

[{ORDERITEMS.ITEMNUMBER}] - [{ORDERITEMS.ITEMTITLE}] x [{ORDERITEMS.NQTY}] [{ORDERITEMS.FPRICEPERUNIT}] [{ORDER.CCURRENCY}] each

>

SubTotal: EVAL<N2[[{ORDER.FTOTALCHARGE}]-[{ORDER.FPOSTAGECOST}]-[{ORDER.FTAX}]]> [{ORDER.CCURRENCY}]

P&P Cost: [{ORDER.FPOSTAGECOST}] [{ORDER.CCURRENCY}]

Tax: [{ORDER.FTAX}] [{ORDER.CCURRENCY}]

Total: [{ORDER.FTOTALCHARGE}] [{ORDER.CCURRENCY}]

Calculated TAX (15% inclusive) : EVAL<N2[[{ORDER.FTOTALCHARGE}] * 15 / 115]> [{ORDER.CCURRENCY}]

EVAL<IIF["[{ORDER.POSTALTRACKINGNUMBER}]"="","",concat["Postage Tracking number: ","[{ORDER.POSTALTRACKINGNUMBER}]"]]>

EVAL<IIF["[{ORDER.SHIPPINGMETHOD}]"="MyCourier",concat["http://mycourier.com/?tracking=","[{ORDER.POSTALTRACKINGNUMBER}]"],""]>

EVAL<IIF["[{ORDER.SOURCE}]"="EBAY","Thank you for buying from our excellent eBay shop, please leave feedback.",""]>

EVAL<IIF["[{ORDER.SOURCE}]"="AMAZON","Thank you for buying from our excellent Amazon shop, please leave feedback.",""]>

EVAL<IIF["[{ORDER.SOURCE}]"="WEBSITE","Thank you for buying from our excellent shop www.myshop.com. Visit us again.",""]>

EVAL<IIF["[{ORDER.SOURCE}]"="DUMMY","Source related text will go here",""]>


Best Wishes

The Data tags are highlighted in bold.
Foreach iteration highlighted in blue.
The evaluation expression is highlighted in orange.
Expression function is highlighted in red.

 

Example of an HTML Despatch Notification email template

  • Below is  example HTML code for a Despatch email
  • See Fig 1.1 for preview of output produced
 Fig 1.1 

<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; fontsize:12px; margin:0; padding:0;"> 

<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; fontsize:12px; margin:0; padding:0;"> 

<table cellspacing="0" cellpadding="0" border="0" height="100%" width="100%"> 

<tr> 

<td align="center" valign="top" style="padding:20px 0 20px 0"> 

<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="700" style="border:1px solid #093f56;">     

<!-- Header --> 

<tr> 

<td bgcolor="#0088c1" valign="top"> 

<a href="http://www.linnsystems.com"}}"><img src="http://www.linnsystems.com/img/linnsystems-logo.png" width="177"  height="92" alt="Linn Systems" style="margin-bottom:10px;" border="0"/></a> 

</td> 

</tr>

<!-- Body --> 

<tr> 

<td valign="top"> 

<h1 style="font-size:20px; font-weight:normal; line-height:22px; margin:0 0 11px 0;> Hello, [{ORDER.CFULLNAME}] </h1> 

</td>  

</tr>

<tr> 

<td> 

<h2 style="font-size:16px; font-weight:normal; margin:0;"> Thank you for your order which we are happy to inform your has now been shipped with [{ADD-IN.SHIPPINGMETHOD}] on [{ORDER.DPROCESSEDON}] </h2> 

</td> 

</tr>

<tr>

<td> 

<!-- Shipping --> Shipping details:<br><br> 

<table cellspacing="0" cellpadding="0" border="0" width="100%"> 

<thead> 

<tr> 

<th align="left" width="325" bgcolor="#EAEAEA" style="fontsize:13px; padding:5px 9px 6px 9px; line-height:1em;">Shipping Information:</th> 

<th width="10"></th> 

<th align="left" width="325" bgcolor="#EAEAEA" style="fontsize:13px; padding:5px 9px 6px 9px; line-height:1em;">Shipping Method:</th> 

</tr> 

</thead> 

<tbody> 

<tr> 

<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;"> [{ORDER.CSHIPPINGADDRESS}]&nbsp; </td> 

<td>&nbsp;</td> 

<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;"> [{ADD-IN.SHIPPINGMETHOD}]&nbsp; </td> 

</tr>         

</tbody> 

</table>       

<br> EVAL<IIF["[{ORDER.POSTALTRACKINGNUMBER}]"="","", concat["Postage Tracking number:","[{ORDER.POSTALTRACKINGNUMBER}]"]]>  

<!-- Order Details --> 

<br/><br/><br/> Your order details:

<br><br> Our Reference Number : [{ORDER.NORDERID}] 

EVAL<IIF["[{ORDER.SOURCE}]"="EBAY","eBay Reference number: [{ORDER.REFERENCENUM}]",""]> 

EVAL<IIF["[{ORDER.SOURCE}]"="AMAZON","Amazon Reference number: [{ORDER.REFERENCENUM}]",""]> 

EVAL<IIF["[{ORDER.SOURCE}]"="WEBSITE","Web Shop Reference number: [{ORDER.REFERENCENUM}]",""]>

<table cellspacing="0" cellpadding="0" border="0" width="100%"> 

<thead> 

<tr> 

<th align="left" width="450" bgcolor="#EAEAEA" style="fontsize:13px; padding:5px 9px 6px 9px; line-height:1em;">Item Information</th> 

<th width="10"></th> 

<th align="left" width="100" bgcolor="#EAEAEA" style="fontsize:13px; padding:5px 9px 6px 9px; line-height:1em;">Cost (Each)</th> 

<th align="left" width="100" bgcolor="#EAEAEA" style="fontsize:13px; padding:5px 9px 6px 9px; line-height:1em;">Cost </th> 

</tr> 

</thead> 

<tbody> FOREACH(OrderItems){BEGIN} 

<tr> 

<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;"> Item Number ~ [{ORDERITEMS.ITEMNUMBER}] <br/> [{ORDERITEMS.ITEMTITLE}] x [{ORDERITEMS.NQTY}]   </td> 

<td> &nbsp; </td>

<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;"> [{ORDERITEMS.FPRICEPERUNIT}]  [{ORDER.CCURRENCY}] </td> 

<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;"> [{ORDERITEMS.FPRICEPERUNIT}]  [{ORDER.CCURRENCY}] </td> 

</tr>  {END} 

</tbody> 

</table>       

<!-- Order total --> 

<table cellspacing="0" cellpadding="0" border="0" width="100%"> 

<tbody> 

<tr> 

<td width= "545" align="right" valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA;"> SubTotal: </td> 

<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px;"> EVAL<N2[[{ORDER.FTOTALCHARGE}]-[{ORDER.FPOSTAGECOST}]-[{ORDER.FTAX}]]> [{ORDER.CCURRENCY}] </td> 

</tr>

<tr> 

<td  width= "545" align="right" valign="top" style="font-size:12px; padding:7px 9px 9px 9px;"> P&P Cost: </td> 

<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px;"> [{ORDER.FPOSTAGECOST}] [{ORDER.CCURRENCY}] </td>

</tr>

<tr> 

<td  width= "545" align="right" valign="top" style="font-size:12px; padding:7px 9px 9px 9px;"> Tax: </td> 

<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; "> [{ORDER.FTAX}] [{ORDER.CCURRENCY}] </td> 

</tr>

<tr> 

<td  width= "545" align="right" valign="top" style="font-size:12px; padding:7px 9px 9px 9px;"> Total: </td> 

<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px;"> [{ORDER.FTOTALCHARGE}] [{ORDER.CCURRENCY}] </td> 

</tr> 

</tbody>  

</table>

<br><br><br> 

EVAL<IIF["[{ORDER.SOURCE}]"="EBAY","Thank you for buying from our excellent eBay shop, please leave feedback.",""]> 

EVAL<IIF["[{ORDER.SOURCE}]"="AMAZON","Thank you for buying from our excellent Amazon shop, please leave feedback.",""]> 

EVAL<IIF["[{ORDER.SOURCE}]"="WEBSITE","Thank you for buying from our excellent shop www.LinnSystems.com, please visit us again.",""]> 

EVAL<IIF["[{ORDER.SOURCE}]"="DUMMY","Source related text will go here",""]>

</td> 

</tr>  

<!-- Footer --> 

<tr> 

<td bgcolor="#EAEAEA" align="center" style="background:#0088c1; textalign:center;"> <center> 

<p style="font-size:12px; margin:0;"><strong>Linn Systems Ltd</strong></p> 

<p style="font-size:12px; margin:0;">email: info@LinnSystems.com</p> 

<p style="font-size:12px; margin:0;">telephone: +44 020 3651 7045</p> 

</center> </td>

</tr> 

</table> 

</td> 

</tr> 

</table> 

</div>

</body>

Creating multiple conditional email templates for the same type

  • To create conditional email template click Add New.
  • Specify a condition under which the email will be generated.
  • The new template condition will be added to the drop down list. Switch to the conditional template by selecting it from the list.

Conditional fields available:

cEmailAddress, cShippingAddress, cPostCode, dReceievedDate, dDispatchBy, PostageCost, fTotalCharge, fTax, cCurrency, nOrderId, nStatus, Source, ReferenceNum, ExternalReference, cCountry, PostalTrackingNumber, cFullName, CreatedBy, bProcessed, dProcessedOn, Address1, Address2, Address3, Town, Region, BuyerPhoneNumber, Company, SubSource, Subtotal, PostageCostExTax, CountryTaxRate

Examples of the conditions:

Source='EBAY' or Source='AMAZON'

when source of the order is EBAY or AMAZON

Source='EBAY' AND SubSource='EBAY0'

when source of the order is EBAY and the order came from the primary ebay account, i.e. subsource is EBAY0

(cCountry='France' AND Source<>'EBAY') or (cCountry='France' AND SubSource='My French Amazon account)

when country is France and order is not from eBay or when order is from France and subsource is specific amazon account with the name My French Amazon Account.

 

Once a set of conditions has been fulfilled, no further conditions will be checked to see if it better suits your needs

For Example

Condition 1 Source <> 'AMAZON' AND Source <> 'EBAY'

Condition 2 Source = '3DCART'

In this example the email template associated with Condition 2 will never be used as it is fulfilled by Condition 1

To allow Condition 2 to be used Condition 1 needs to changed to Source <> 'AMAZON' AND Source <> 'EBAY' AND Source <> '3DCART'

 

Preview template while editing

To preview the template click Preview Dummy. On the email template edit screen – this will produce the email body as per dummy order.

  • If you set Attach PDF Invoice option. The preview will also generate an attachment and you can view it by double clicking on the attachment file in the list.
  • Alternatively you can view what the email will look like for a specific open order (Only Open orders will be viewed, processed orders will generate Order Not Found error).
  • Click on the Preview for Order and enter Linnworks Order Id.

Sending emails

  • All emails will be queued in the Email Outbox screen.
  • You can view the queue by going into Synchronization > Email Outbox.
  • From Email Outbox you can also view the content of the email, change it and send the emails.

 

Auto Sending emails

  • It is possible to set Linnworks to Auto Send emails for a single session of Linnworks
  • Each time you start Linnworks if you wish to Auto Send emails you will need to do the following
  • Synchronization > Email Outbox, click Auto Send
  • All existing emails form previous sessions and emails generated during the active session of Linnworks will be sent immediately
  • To implement Throttling for sending emails set a Delay time in the Email Notification Settings