#V2-exclusive: Custom Dynamic Tags

arpReach has a limited number of dynamic tags.

The custom dynamic tag feature in #V2 allows you to create your own dynamic tags to use in messages. For example, the Date Tags with a plus (+) or minus (-) modifiers work due to the custom dynamic tags capability.

A #V2 installation has the file user_dynamic_tags.php in its /user_functions folder. You can add your own dynamic tags functions there.

The function names should begin with the prefix “dynamic_” to allow the system to detect them.

When #V2 processes a message and detects an unknown tag, it checks if a function with the name “dynamic_<tag>” exists. If yes, it runs this function with the $contact-object and the default tag-value and uses the result as the Tag value.

Important note: Your code must be designed to handle $contact being NULL and $default being an empty string.

Predefined Custom Dynamic Tags

{URLENCODE <value>} - encodes the value to use it in links. For example:

<a href="http://mysite.com/hello/?name={URLENCODE {FULL_NAME}}&amp;company={URLENCODE {COMPANY}}">hello</a> function dynamic_URLENCODE( $contact = NULL, $default = '' ) { return rawurlencode($default); }
{HTML_TO_TEXT} - converts an HTML-marked content into TEXT (plain text). You can use this for variables with HTML content to place them in plain-text part of your messages. For example:

{HTML_TO_TEXT {VARIABLE_MY_HTML_CONTENT}} function dynamic_HTML_TO_TEXT( $contact = NULL, $default = '' ) { return convert_html_to_text($default); }
{GRAVATAR_HASH} - allows you personalize messages with an avatar of your contact by using this image HTML code in your HTML messages:

<img src="https://www.gravatar.com/avatar/{GRAVATAR_HASH}.jpg" /> By default, images are presented at 80px by 80px if no size parameter is supplied. You may request a specific image size, which will be dynamically delivered from Gravatar by using the s= or size= parameter and passing a single pixel dimension (since the images are square): <img src="https://www.gravatar.com/avatar/{GRAVATAR_HASH}.jpg?size=200" /> You may request images anywhere from 1px up to 2048px. Read more at: https://gravatar.com/site/implement/images function dynamic_GRAVATAR_HASH( $contact = NULL, $default = '' ) { return md5(strtolower(empty($contact->email_address)? '': $contact->email_address)); }
{FULLNAME} - may compose full name from other parts of a name. Note that the {FULL_NAME} tag (with an underscore) is a different tag.

function dynamic_FULLNAME( $contact = NULL, $default = '' ) { if ( empty($contact) ) return $default; if ( empty($contact->full_name) ) { $contact->full_name = trim( implode(' ', array_filter(array( $contact->first_name, $contact->middle_name, $contact->last_name )))); } return empty($contact->full_name)? $default: $contact->full_name; }
{DATE_X <offset parameter>} - for date offsetting.

Offset by days {DATE_1 +1} {DATE_1 -3} {DATE_1 +1 day} {DATE_1 -3 days} Offset by weeks {DATE_1 +1 week} {DATE_1 -3 weeks} Offset in mixed format {DATE_1 +1 year 2 months 1 week 5 days} function dynamic_DATE_1( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_1', $default); } function dynamic_SHORTDATE($contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_1', $default); } function dynamic_DATE_2( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_2', $default); } function dynamic_LONGDATE( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_2', $default); } function dynamic_DATE_3( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_3', $default); } function dynamic_USDATE( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_3', $default); } function dynamic_DATE_4( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_4', $default); } function dynamic_USLONGDATE( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_4', $default); } function dynamic_DATE_5( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_5', $default); } function dynamic_USLONGDATENOYEAR( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_5', $default); } function dynamic_DATE_6( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_6', $default); } function dynamic_EUROPEANDATE( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_6', $default); } function dynamic_DATE_7( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_7', $default); } function dynamic_WEEKDAY( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_7', $default); } function dynamic_DATE_8( $contact = NULL, $default = '' ) { return _dynamic_FORMATED_DATE('date_format_8', $default); } function _dynamic_FORMATED_DATE($date_format = '', $default = '') { $CI =& get_instance(); $default = preg_replace('/^([+-]\s*[\d]+)$/', '$1 days', trim($default)); return app_date_offset( $CI->system_settings->{$date_format}, empty($default)? '': strtotime($default) ); }

Attachments

The attachment library is a central repository of files that you can attach to your messages.

By managing the files centrally, you can easily update a file without the need to edit all of the messages that have that file as an attachment.

“Centralized management of attachments means you can change them without having to change your follow-up or broadcast messages”

Managing your attachment library

To add an attachment to your library, go to Content / Attachments / Add an Attachment.

To edit an attachment, go to Content / Attachments / Show List:

… and choose Edit from the Choose action… drop-down menu.

When adding or editing an attachment, the settings are the same.

  • Name – a unique name for the attachment.
  • Description – a description for the attachment. This is never displayed to contacts.
  • File to upload – choose the file to be uploaded from your computer and stored in the attachment library.

Note that the maximum upload file size is dependent to your web host limitations. If you need to upload a file that is larger than what is currently allowed, contact your web host and ask them to increase the limit.

Attachments can be sorted by name and description using the Order by drop-down menu.

The With selected… menu allows you to delete the selected attachments. There is no need to make any changes to the messages that had those attachments.

Using the I want to… drop-down menu, you can add a new attachment or delete all attachments.

Under the Actions column, the Choose action… drop-down menu has the options to:

  • Preview – preview the attachment in a pop-up window. Your browser needs to allow pop-ups for this to work.
  • Edit – edit the attachment settings and its file content.
  • Copy/Copy then edit – add a new attachment by copying the attachment’s settings and file content.
  • Delete – delete the attachment.

Adding an Attachment to a Message

When creating or editing a follow-up, broadcast, and single email message, you can choose the attachment/s to be added to the message by selecting them from the attachments list.

For follow-up messages: Add or edit a message, go to the Message tab, expand the Attachments section, then check off the attachment/s to be added to the follow-up message.

For follow-up message variants, add or edit a variant, expand the Attachments section, then check off the attachment/s to be added to the follow-up message variant.

For broadcast messages: Schedule or edit a broadcast, go to the Message tab, expand the Attachments section, then check off the attachment/s to be added to the broadcast message.

For broadcast message variants, add or edit a variant, expand the Attachments section, then check off the attachment/s to be added to the broadcast message variant.

“Both broadcast and follow-up message variants can have different files attached”

For single emails: Create or edit a single email, go to the Message tab, expand the Attachments section, then check off the attachment/s to be added to the single email.

Ads

Ads are blocks of plain text and HTML that you manage centrally and can insert the latest version into follow-up and broadcast messages with simple tags such as {AD_Shoes_S}. If you change the content of an ad, the new version will automatically be used in your messages without having to edit them.

Managing your ads

To create a new ad, go to Content / Ads / Create New.

To edit an ad, go to Content / Ads / Show List:

… and choose Edit from the Choose action… drop-down menu.

When creating or editing an ad, the settings are the same.

The Settings Tab

  • Name – a unique name for your ad.
  • Tag – a unique tag for this ad that will be used to insert its contents into your messages. For example, your ad tag is Shoes_S. You would use the tag/shortcode {AD_Shoes_S} to insert the ad’s content into a message. Using {AD_Shoes_S Currently Not Available} would display “Currently Not Available” if no content is stored for the ad Shoes_S.
    The tags {AD_Shoes_S} and {AD_TEXT_Shoe_S} will insert the plain text version of the ad into messages, while the tag {AD_HTML_Shoes_S} will insert the HTML version of the ad into messages.
  • Alternative tags (plain text) – alternative tags that will be used to insert the plain text version of this ad into messages. Exclude braces, and the tag should be different from any tag already used by arpReach. Separate multiple tags by commas. For example: TEXT_ShoeAdSmall, TEXT_ShoeAd01.
  • Alternative tags (HTML) – alternative tags that will be used to insert the HTML version of this ad into messages. Exclude braces, and the tag should be different from any tag already used by arpReach. Separate multiple tags by commas. For example: HTML_ShoeAdSmall, HTML_ShoeAd01.
  • Description – a description for this ad. This is never displayed to contacts.

The Content Tab

  • Plain text content – the plain text version of the ad.
  • HTML content – the HTML version of the ad. You can add the content as raw HTML or use the built-in WYSIWYG editor by clicking the Toggle editor link.

Ads can be sorted by name, description, tag, or content using the Order by drop-down menu.

The With selected… menu allows you to delete the selected ads.

Using the I want to… drop-down menu, you can create a new ad or delete all ads.

Under the Actions column, the Choose action… drop-down menu has the options to:

  • Preview
  • Edit
  • Copy
  • Copy then edit
  • Delete

Remove a registered domain

How do I change or remove a registered domain/sub-domain from my arpReach license?

If you need to remove an associated domain from your arpReach license domain allocation, we require an administration fee of $35 (per domain/sub-domain you require to be removed) to be paid.

This is how to do it:

Pay the $35 administration fee by clicking on the ‘Buy Now’ button on this page:

https://www.arpreach.com/domainremoval

Ensure you input your arpReach license number in the Notes field of the PayPal payment process and complete your payment.

Once paid, open a support ticket:

http://support.arpreach.com/support/home

… with your domain removal request and a copy of your PayPal receipt and/or transaction ID.

Your request will be processed within 24 hours (Mondays – Fridays).

If you need to remove more than one (1) domain/sub-domain from your domain allocation, submit a support ticket and we will be providing you a special link where you can pay for the amount needed.

Important note: Orders for license updates are not refundable.

Move arpReach to HTTPS

How do I move my existing non-secure arpReach installation so it’s on HTTPS?

There are many reason why you might want to ensure that your website has an SSL:

It protects your website from breaches and other threats
Increases your credibility and email reputation
Develops trust between you and your customers knowing that their privacy is also important to you

… and so on.

Since having a secured website has already become a standard, you may be wondering how you can have your arpReach system on SSL.

Here’s a typical scenario:

You just added an SSL certificate on your website and noticed that your arpReach system is still unsecured and the links on your messages are still non-HTTPS links.

This is how to do it:

1. Make sure the domain/sub-domain arpReach is installed on uses SSL (https) for all its pages

2. Go to your arpReach installation directory

For example, if you access arpReach on:

http://www.example.com/a

… the installation directory would be:

public_html/a

3. Open the CONFIG.PHP file and edit the application URL to indicate the correct URL value (http > https)

That’s it! After you save it, your arpReach installation and the system links on all your messages should already be on HTTPS.

Use Zapier with arpReach

How do I use Zapier with arpReach?

Using Zapier + arpReach API to add your contact’s details into arpReach takes your email marketing automation to a whole new level and opens up a whole new world of profitable possibilities and opportunities.

Here are just some of the services arpReach users can integrate with by using Zapier:

LinkedIn
GoToMeeting
Stripe
Pipedrive
TypeForm
SurveyMonkey
WooCommerce
Freshdesk
Gravity Forms

… plus over 500 other apps.

This is how to do it:

In order to create a public service Global Zapier app, it is a requirement to have a fixed or static URL.

Because arpReach is a self-owned autoresponder software that you install on your own servers, we can’t develop a Global Zap app. The great news is, you can build your own arpZap in just 4 simple steps.

You can get started by following the instructions on our blog: The arpReach Zap.

Remove failed subscriptions from an autoresponder

How do I remove contacts whose subscription to an autoresponder failed?

arpReach will automatically update the status of a contact’s autoresponder subscription to ‘Failed‘ when any of the following occurs:

A hard bounce is received
The soft bounce limit (you’ve set for that autoresponder) is reached

The system will not automatically remove contacts with failed subscriptions from an autoresponder. You, however, have the option to manually remove them.

Here’s a sample scenario:

You have an autoresponder (Active Members) that serves as a newsletter for active members of your organization.

You want to filter the contacts whose subscription to that autoresponder (Active Members) failed so you could:

1. Add them to the suppression list
2. Move them to another autoresponder (Failed Subscriptions)

This way, you can make sure that they will no longer have any effect on your deliverability rate and so you can have a much clearer active VS cancellation figure.

This is how to do it:

1. Create the Failed Subscriptions destination autoresponder and set its status to Sending Paused or Disabled (See How to create autoresponders)

2. Create the segment (Active Members: Failed) that will filter those failed subscriptions (See How to create segments)

You only need to set one criteria for this segment:

— Match type: Subscription
— Autoresponder: Active Members
— Status: Failed
— All contacts must match: Ticked/chosen

You can leave the rest of the fields as is.

3. Create an action (FailedSubs: Suppression List) that will allow you to easily add them to the suppression list (See How create an action)

Since we will be using the ‘Trigger Action for matching contacts‘ feature (See How to update contacts in bulk), you can choose any of the options on the ‘Event‘ field since what’s important is that you set the ‘Action‘ type to ‘Add to suppression list‘.

However, keep in mind that any contact that triggers that event (regardless if it is for this purpose/scenario or not) will be added to the suppression list. So it is advisable that you use an event type that you never really use (e.g., Remote call) or create an event/trigger solely for the purpose of this scenario (e.g., create a form for the Failed Subscriptions autoresponder and set the ‘Event‘ type of this action to ‘Subscription form submit‘.

4. Filter your contacts using the segment (Active Members: Failed) you created

You can either choose ‘Apply‘ from the ‘Choose action…‘ drop-down menu (when on the Segments list screen):

… or choose ‘In segment‘ / Active Members: Failed from the ‘Filter‘ drop-down menu on the Contacts list screen:

TO ADD THEM TO THE SUPPRESSION LIST

5. Once the filter is in place, click on the ‘I want to…‘ drop-down menu and choose ‘Trigger Action for matching contacts

6. On the ‘Trigger Actions For Matching Contacts‘ screen, tick/choose the FailedSubs: Suppression List action you created and click on the ‘Trigger Action‘ button

The action will then be added to the ‘Scheduled Actions‘ list and will be processed during the next (cron) run of the arpReach script.

TO MOVE THEM TO THE Failed Subscriptions AUTORESPONDER

7. Go back to the Contacts list screen (the same filter should still be in place) and, this time, choose ‘Edit matching contacts‘ from the ‘I want to…‘ drop-down menu

8. On the ‘Edit Matching Contacts‘ screen, select the following under the ‘Subscription‘ section

  • For autoresponder: Active Members (the originating autoresponder – where you are removing them from)
  • Move to this autoresponder: Failed Subscriptions (the destination autoresponder – where you are transferring them to)

You can leave the rest of the fields as is and click on the ‘Save Changes‘ button.

Once done, the contacts with failed subscriptions to the Active Members autoresponder will already be on the suppression list (assuming that the next cron has already run):


… and moved to the Failed Subscriptions autoresponder:

Tip! Instead of moving the failed subscriptions from the Active Members autoresponder to the Failed Subscriptions autoresponder, you also have the option to just delete their entire contact records from system after adding their email addresses to the suppression list. To do so, just create another action (e.g., FailedSubs: Delete) with the ‘Action‘ type set as ‘Delete contact‘ and also add that new action (FailedSubs: Delete) to the ‘Scheduled Actions‘ list on Step #6. To guarantee that the action to add them to the suppression list is processed prior to the system deleting their contact records, add the actions on the ‘Scheduled Actions‘ list separately. The first being the FailedSubs: Suppression List action, then the FailedSubs: Delete action.

Warm up my IP address

How do I warm up my email server IP address?

IP address warming is a gradual process that happens over a period of time. The aim of warming up an IP address is to establish trust and good reputation with the ISPs (Internet service providers) as a sender of legitimate, high quality emails at volume.

Warming up your IP address is the time to take a careful look at every aspect of your email marketing process, including your aims and goals. You should be able to make tweaks that will improve your overall long-term results, not just during the warm up.

Please note though that a structured “introduction” of your email server to the world while ramping up your sending volume does not guarantee trouble free sending of emails forever. You will need to play by “the rules” and utilize good list-hygiene practices.

Why do I need to warm up my IP address?

In short, too many emails that get sent are spam (unwanted emails) and the ISPs want to protect their users from receiving unwanted emails.

As a result, ISPs treat any new IP address that sends emails with skepticism. The ISPs only reduce that skepticism once the sender has proved their reputation.

What do ISPs expect from email senders?

The ISPs build up a ‘sender score’ for IP addresses and domain names based on metrics that differentiate legitimate emails from spam. These include:

Send volume
Spam complaints
Messages sent to unknown users
Subscriber engagement
Infrastructure
Spam trap hits
Content

… and more.

To start with, an IP address has a neutral sender score. Every time someone hits the spam button, or you get a hard bounce, or your email is sent to an unknown user, your credit rating goes down.

How do I get a good email sender reputation?

• Follow best practices
• Make sure your DKIM, SPF, Sender-ID, and Domain Keys are set up properly:

https://en.wikipedia.org/wiki/Reverse_DNS_lookup
https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail
https://en.wikipedia.org/wiki/Sender_Policy_Framework
https://en.wikipedia.org/wiki/Sender_ID
https://en.wikipedia.org/wiki/DomainKeys

• Comply with the CAN-SPAM Act and other international anti-spam laws
• Only send to people who have opted in to receive emails and confirmed their request
• Do not buy lists from email brokers
• Avoid including large attachments and certain attachment types (.exe, .zip, .swf, etc. should be avoided)

So, how do I warm up my email server IP address? This is how to do it: 

The goal is to build up approximately 30 days of sending history so that ISPs have an understanding of the type and quality of emails being sent by your new IP address. The warm up ramp-up period may take longer than 30 days for some senders and can be less for others.

The basic approach is to estimate your total monthly email volume and divide that number by 30. Then try to spread your sending evenly over the first 30 days.

For example, if you will send 90,000 emails per month, you should start off sending 3,000 per day over the first month. Or, if you typically send about 300,000 emails per month, warm up your IP address by sending 10,000 emails per day for the first month.

For larger numbers (i.e., sending 500,000+ emails per month), you will need to extend the warm-up period to possibly over 2 months. You can also consider incremental increases to your daily send volume (e.g., 3,000 for 4 days > 4,000 for 4 days > 5,000 for 4 days > 7,500 for 4 days > 10,000 for 4 days, and so on).

There are no hard and fast rules but here are some guidelines:

• Send first to your best, most active customers
• Send consistently (having a consistent email volume from one day to another is much better than having a large volume sent on one day of the week and no email sent on the remaining days)
• Start with a hundred or so messages an hour
• Increase the hourly rate gradually
• Monitor your logs
• If the ISPs start sending back 4xx failures, you are going too fast, so slow down

Other hints and tips

• Split large, non-time-sensitive sends over a number of days
• Split campaigns between your new IP address and your legacy email system
• Create non-time-sensitive campaigns (e.g., subscriber surveys) to use specifically for the purpose of ramping up new IP addresses

Reputation Monitoring Sites:

Sender Score – https://www.senderscore.org/
Sender Base – http://www.senderbase.org
Cyren IP Reputation Check – https://www.cyren.com/security-center/cyren-ip-reputation-check
Barracuda Central – https://www.barracudacentral.org/lookups/
Spamhaus – https://www.spamhaus.org/
Microsoft SNDS – https://postmaster.live.com/snds/

Avail of the free installation

How do I avail of the free installation that came with my arpReach license?

While arpReach can be installed by anyone, you still need to have a basic understanding of how to modify and upload files on your server, as well as an understanding of how to make changes and adjustments to your website hosting using either a hosting control panel or command line interface.

Most (not all) arpReach license package offers usually come with one (1) free installation. If you are not comfortable enough to do the installation on your own, you may avail of the free installation service once your purchase has been confirmed.

This is how to do it:

To check your eligibility and/or avail of the one (1) free installation service that came with your new arpReach license, send an email to:

sales@arpreach.com

… with all of the following information:

  1. Your domain name
  2. Your arpReach license number and password (from your order confirmation email)
  3. The name of your web hosting company
  4. Your hosting cPanel login page and credentials
  5. Your hosting account FTP login page and credentials

When they have all of these information, they can schedule your installation and will email you if they need any more details and/or when your installation is complete.

Installations are normally completed within one business day, excluding weekends and UK holidays.

If you are no longer eligible for a free install, our partner offers professional installation services:

https://arpreach.com/install

Remove unsubscribers from an autoresponder

How do I remove contacts with cancelled subscriptions from an autoresponder?

There are a lot of things you can do with your unsubscribers, such as:

Attempt to reactivate their engagement to your program
Offer other products they might be interested in instead
Add them to the suppression list altogether

… and so on.

Here is a possible scenario:

You have an autoresponder (Active Members) that serves as a newsletter for active members of your organization.

You want to filter the contacts who unsubscribed to that autoresponder (Active Members) and move them to another autoresponder (Inactive Members) you’ve just set up in an attempt to eventually reactivate their engagement to your organization.

This is how to do it:

1. Create the Inactive Members destination autoresponder (See How to create autoresponders)

2. Filter your contacts to show only those that unsubscribed to the Active Members autoresponder

You can either click on the ‘Unsubs‘ count:

… or choose ‘Unsubscribed‘ / Active Members from the ‘Filter‘ menu on the Contacts list screen:

3. Once the filter is in place, click on the ‘I want to…‘ drop-down menu and select ‘Edit matching contacts

4. On the ‘Edit Matching Contacts‘ screen, select the following under the ‘Subscription‘ section:

  • For autoresponder: Active Members (the originating autoresponder – where you are removing them from)
  • Move to this autoresponder: Inactive Members (the destination autoresponder – where you are transferring them to)
  • Last message sent: 0 (so they’ll begin their subscription to the destination autoresponder from the beginning)
  • Status: Active
  • Change all the other fields as necessary and save your changes

Once done, the unsubscribers from the Active Members autoresponder will already be on the Inactive Members autoresponder:

Tip! If you want to preserve the status of their subscriptions to the originating autoresponder (Active Members) for records purposes, you may simply add a new subscription to the destination autoresponder (Inactive Members) instead of moving them out of the originating autoresponder. To do so, simply use the ‘Trigger Action for matching contacts‘ feature (See How to update contacts in bulk).