E-mail Anyone Any Time – Quickstart Guide
Installing the Plug-In
You should have installed your Infusionsoft Pocket Developer plug-in using the instructions provided when you purchased the plug-in.
If, for any reason, you have not installed your Pocket Developer plug-in, follow these simple instructions, to learn how.
Configuring the HTTP Post Snippet
URL:
The URL, on your server, where the Pocket Developer script is stored. For example:
http://yourdomain.com/scripts/PocketDeveloper/Blocks/EmailAnyone/
Required Name Value/Pairs
to
- The “to” address that should be receiving the e-mail. This can be a fixed e-mail address, a comma separated list of e-mail addresses or any Advanced Merge Field Notation that would yield a valid e-mail address
templateId
- The ID of an existing e-mail template in Infusionsoft. Field values within the template, specifically to, from, cc & bcc, can be over-written by the to, from, cc, and bcc parameters of this plug-in
Optional Name Value/Pairs
from
- A “from” address for the outgoing e-mail. If omitted, the fixed value within the e-mail template will be used. If no from e-mail is found, “noreply@infusionsoft.com” will be used by default
cc
- An e-mail, or comma separated list of e-mails, that will receive a carbon copy of the outgoing e-mail. Email addresses can be fixed, come from a standard Infusionsoft merge field or our Advanced Merge Field Notation, allowing you to use fields from records other than the contact. (e.g. Order, Invoice, Company or Opportunity.
bcc
- An e-mail, or comma separated list of e-mails, that will receive a blind carbon copy of the outgoing e-mail. Email addresses can be fixed, come from a standard Infusionsoft merge field or our Advanced Merge Field Notation, allowing you to use fields from records other than the contact. (e.g. Order, Invoice, Company or Opportunity.
delete
- Set this to true if you want Pocket Developer to delete the contact that is created when no contact exists for an email address in to, from, cc or bcc. Default is set to false. NOTE: Pocket Developer adds a tag (Pocket Developer -> Created by Email Anyone Anytime) to all contacts it creates for the purpose of sending an email
Configuring the Email Template
Email Anyone Anytime uses email templates. Email templates can be found in the main Infusionsoft menu under Marketing.
As noted above, the from and to fields configured in the email template can be overridden by the plug-in, if desired.
When used with the Email Anyone Anytime plug-in, the subject line and email body can use our Advanced Merge Field Notation to merge information that is not available in standard Infusionsoft merge fields.
For example, you might merge the product purchased in the subject line or information from the contact’s company record in the body of the email.
NOTE: If you use Advanced Merge Field Notation in the subject or body copy, this email template cannot be used as a standard email template. Without the plug-in, the merge fields will appear as text in the email, without being merged. You might want to consider marking email templates that have Advanced Merge Field Notation so they aren’t used or changed accidentally.
Demo Video
Advanced Merge Field Notation
,
This Pocket Developer plug-in can use our Advanced Merge Field Notation anywhere a merge field is allowed. Advanced Merge Field Notation allows you to use merge fields from any table, e.g. Opportunity, Invoice, Company, Referral, Appointment, etc. It also allows you to Filter, Count, Max, Min, Compare, filter by IsEmpty and other advanced functionality.
For example, you may want to include the amount still due on an invoice in an email. Or, you may want to include the agreed upon services from an opportunity in an email. You can do this using Advanced Merge Field Notation.
See the Advanced Merge Field Notation documentation for more details.
Pre-Fetch
This Pocket Developer plug-in can build advanced data sets using our pre-fetch functionality. Pre-fetch allows you to find one piece of information, such as an ID, and pass it along to get to the exact piece of information you need.
For example, you may pre-fetch the Order Id before using it to get the line items on an order from the OrderItem table, to display in your email. This reduces the number of post snippets in a campaign and eliminates having to store a value in a field for the next step.
See the Pre-Fetch documentation for more details.
Contact Override
This Pocket Developer plug-in can merge information related to a contact other than the one going through the campaign, using our contact override functionality.
For example, you may want to create a notification email that includes the name and email address of the contact’s referrer as well as how many referrals that affiliate has made. You can do this using Override with our Advanced Merge Field Notation.
See the Contact Override documentation for more details.
Pro Tips
Use the Universal Delay Timer with Email Anyone Anytime, instead of standard Infusionsoft delay timers. You can configure the Universal Delay Timer so contacts are not “in” the campaign during the delays by not connecting the timer goal to the sequence before it.
Frequently Asked Questions
Q. Can’t I do the same thing with a legacy action set?
A. Email Anyone Anytime eliminates seven different roadblocks when sending email from Infusionsoft Campaign Builder. They are:
- adds CC and BCC functionality to email … stop sending different emails to each recipient
- adds comma separated lists of email addresses to TO, CC and BCC … same as non-Infusionsoft emails
- send emails to recipients, other than the contact, multiple times within the same campaign … admin notifications are no longer an issue
- use email addresses contained in email2, email3 and company email in TO, CC and BCC … email home and work at the same time … what a concept!
- merge email addresses from fields other than the contact record (e.g Opportunity, Company, Order or Referral) … gettin’ ninja now!
- merge email addresses from contacts other than the one going through campaign (e.g. Referrer or related contacts) … can’t do that with an action set … nope!
- merge fields from any record, to the subject and body of the email, using our Advanced Merge Field Notation … replace all those standard Infusionsoft confirmation emails
Legacy Action Sets only get you past one of these seven roadblocks.
And, of course, Infusionsoft has said legacy features, such as Action Sets, will go away at some point. We just don’t know when.
So why not future-proof your campaigns and turbo-charge your Infusionsoft emails at the same time?
Track end of support or upgrade period by adding time to purchase date
Scenario:
Your product or service includes support for six months after purchase. You want to record the support expiration date for each product purchased and send the customer emails to get them to renew the support agreement prior to expiration.
CAMPAIGN BUILDER CHALLENGES:
- How do you put a date, six months from purchase, in a custom date field?
- How do you format the date so that it looks nice in emails?
- What if they buy more than one product? What if they buy 20? How do you keep from using up all your custom fields?
SOLUTION:
Use the Pocket Developer Any Date, Any Format, Anywhere plug-in to add the term of your support agreement to the date of purchase. Put it in a custom field so you can merge it into emails and other communications.
HOW TO SET IT UP (THE Custom Field Burning WAY):
You can set this up two ways. The easiest way is to put the end of support date in a custom field in the contact record. This way, it is easily accessible as a merge field and also can be seen easily by sales or support reps.
1. Install and configure Any Date, Any Format, Anywhere and Custom Delay Timer
2. In Campaign Builder, set up a sequence triggered by a Purchase Goal
3. Add two Any Date HTTP POST snippets, which add the support agreement term to today’s date
- Use format “l, F j” to format text version as “Monday, September 22” for emails
- Use format “Y-m-dTH:i:s” to put the date in an Infusionsoft Date field so you can use it in a Field Timer
4. Add a Custom Delay Timer, to the end of the sequence, with a delay of 30 seconds. This gives the posts time to complete before sending the email with the details of your support agreement
5. Add a Field Timer, using your date field, from Step #3, to begin sending renewal notices prior to expiration.
HOW TO SET IT UP (THE POWER USER WAY):
The problem with the above is it burns two of your 100 custom fields in the contact record. It is also not a viable solution if the customer buys more than one product at different times.
You could, instead, use Any Date, Any Format, Anywhere, to put the expiration date in a custom date field in the order itself.
Then, use our Advanced Merge Field Notation, with the Universal Delay Timer plug-in, to run actions off the date in the order instead of from the Contact record.
When it comes time to use those dates for an email, you use Any Date to temporarily “stash” the date in the contact record. Once your email sequence is complete, use Any Text Anywhere to set your stash fields back to blank to be reused.
This method is a bit more work to set up. But, if custom fields are an issue, this technique can be applied in many different scenarios to save custom fields.
1. Install and configure Any Date Anywhere, Any Text Anywhere, Custom Delay Timer, and Universal Delay Timer
2. In Campaign Builder, set up a sequence triggered by a Purchase Goal
3. Add an Any Date HTTP POST snippet, which adds the support agreement term to today’s date and puts it in a custom date field in the order just placed.
- Use “today” for the date and time parameters
- Use format “Y-m-dTH:i:s” any time you are putting a date in an Infusionsoft Date or DateTime field. That is Infusionsoft’s required format.
- Use an adjustment of +6 months
- Use Order._demoCustomDateField.Newest as the saveTo parameter. Replace _demoCustomDateField with your custom field.
4. If you want to send an email immediately, use Any Date to temporarily stash a pretty date in a contact field, as in step 3 in the Easy Setup. Then use Any Text Anywhere to set that field to blank, after the email has been sent.
- To set a text field to blank, leave the textToSave value blank
- Add a Custom Delay Timer, to the end of the sequence, with a delay of 30 seconds. This gives the posts time to complete before sending the email with the details of your support agreement
5. Set up the Universal Delay Timer to restart the campaign a few weeks prior to the expiration date
- Use “Order._demoCustomDateField.Newest” for the date parameter (replace _demoCustomDateField with the field name you used)
- This assumes a time of midnight Eastern Time in the US. Use a date parameter if you want it to send at a specific time.
- Use format “Y-m-dTH:i:s” any time you are putting a date in an Infusionsoft Date or DateTime field. That is Infusionsoft’s required format.
- Use an adjustment of -3 weeks (that means the campaign will resume three weeks before the date you stored in the order)
- Put a unique value in the callName. This is the API goal call name you will trigger to resume the campaign
6. Create an API Goal with the same callName as the previous step.
7. To send an email using the expiration date as a merge field, temporarily stash a pretty version of the expiration date in the contact record, as in Step #4 above. Set back to blank when email is complete.
8. Rinse and repeat as many times as needed for your renewal nag sequence to complete.
You can read more about Any Date, Any Format, Anywhere and see more examples of its usage in the QuickStart Guide.
Any Text Anywhere, Custom Delay Timer and Universal Delay Timer also have Quickstart Guides.
You can read more about Advanced Merge Field Notation and see more examples of its usage in the Learning Center.
To browse the entire catalog and purchase Pocket Developer plug-ins, visit our plug-in store.
Don’t want to set this up yourself? Let one of our concierges do it for you. Just purchase all the necessary blocks. Then email concierge@theapiguys.com. We will have it all set up for you in a jif.
FREQUENTLY ASKED QUESTIONS:
Q. Where do I find the table and field names for Advanced Merge Field Notation?
A. You can find the names of Infusionsoft tables and fields in the Infusionsoft Developer Resource Section under Table Documentation.
You can find the names of your custom fields by going to Infusionsoft Admin Settings -> Add Custom Field -> Record Type -> Show Database Name
Universal Delay Timer – Quickstart Guide
Installing the Plug-In
You should have installed your Infusionsoft Pocket Developer plug-in using the instructions provided when you purchased the plug-in.
If, for any reason, you have not installed your Pocket Developer plug-in, follow these simple instructions, to learn how.
Configuring the HTTP POST Snippet
URL for the POST action
http://theapiguys.com/scheduleCall or http://theapiguys.com/scheduleDelay
Take Note: this particular plug-in is not like our others, we host it. Since we manage the automated system which is continuously in-taking and processing calls, you should not specify your domain in this POST URL as you might in our other plug-ins.
Required Name Value/Pairs
appName
- The application name that will be queried when invoking the API Goal
- Your application name can be found in the URL used to access your Infusionsoft account. e.g. http://APPNAME.infusionsoft.com
callName
- The “Call Name” of the API Goal as specified within Campaign Builder
Note: The “Integration Name” of the API Goal should always be your application name (as used for the appName field)
date
- This field should contain one of the following:
1. A date or date & time which is structurally valid along common standards, such as “January 1, 2014 1:04 PM” or
“01/01/2014 01:04:33 PM” or “January 1st, 2014” or “01/01/2014” etc
2. The text “today” or “now” which will result in using the current date
3. A custom field that is holding a date or date/time value
Note: Only the date will be extracted from date/time values. Also, if you include a supported timezone code in your date value, please make sure it is using all capital letters (unless it’s an identifier), and that it appears as the last item in the date field. This will be overridden by any timezone values in the time or timezone parameters, if supplied. If no timezones are designated, assume that all dates are in Eastern Time as is the standard with Infusionsoft.
Optional Name Value Pairs
time
- This field should contain one of the following:
1. A time or date & time which is structurally valid along common standards, such as “January 1, 2014 1:04 PM” or “01/01/2014 01:04:33 PM”
2. The text “now” which will result in using the current time
3. A custom field that is holding a date or date/time value such as Anniversary, Birthday, or _MyCustomDate
Note: Only the time will be extracted from date/time values. Also, if you include a supported timezone code in your time value, please make sure it is using all capital letters (unless it’s an identifier), and that it appears as the last item in the time field. This will be overridden by any timezone values in the timezone parameter, if supplied. If no timezones are designated, assume that all times are in Eastern Time as is the standard with Infusionsoft.
adjustment
- The “adjustment” field should provide a relative date/time format string that complies with the following documentation: http://www.php.net//manual/en/datetime.formats.relative.php
- Some valid examples of this value are “+5 weeks” or “second month” or “last day of next month” or “yesterday noon” or “+2 hours” etc
timezone
- When the date & time fields are not based on Eastern Time, the user may designate the appropriate originating timezone with any of the supported timezone codes/identifiers specified in the “Supported Timezone Codes” section.
- Timezone abbreviations should always be in all capital letters, unless using identifiers. If no timezone is supplied, it is assumed to be Eastern
convertToTZ
- In the event that the user would prefer to have a time automatically adjusted to some other timezone, they may supply a timezone code/identifier within this parameter following the same rules that apply to the timezone parameter above.
- Adjustments made to the date/time with the “adjustment” parameter are made after the timezone conversion is completed.
saveKeyTo
- Scheduled delay calls can be deleted at a future date by making reference to a specific “key” or ID that is assigned to each call. To allow for such an event, the user may specify a field in which to store the scheduled call’s “key” for future usage (see: Deleting a Scheduled Call)
- The “saveKeyTo” parameter should contain this storage field name, which can be any standard Infusionsoft field or custom field, in any valid table, and as usual does support our Advanced Merge Field Notation.
groupName
- Also related to the management and deletion of scheduled calls is the “groupName” parameter. By specifying a particular group name, the end-user of our plug-in can delete multiple scheduled calls within one request to our deletion service URL (see: Deleting a Scheduled Call).
- The “groupName” parameter will be stored along with each scheduled call within our system.
- Be mindful of the fact that grouping of scheduled calls should be handled with care to avoid the unintended deletion of some scheduled calls by overzealous grouping.
override
- Any contact ID to be used in override scenarios. Overriding creates an accessor to another contact’s data, other than the data associated with the current contact.
- To utilize override data, use Override.Field or ~Override.Field~ notation in place of the traditional Contact.Field or ~Contact.Field~ notation
Deleting a Scheduled Call
The deletion of a scheduled call is similar to the addition, or scheduling, of the initial call. Configuring the HTTP POST action is relatively more straight forward, but does require you read the scheduling instructions. If you haven’t read those yet, please see “Configuring the HTTP Post Snippet.”
The URL to specify within your POST action “POST URL” parameter is:
http://theapiguys.com/deleteCall or http://theapiguys.com/deleteDelay
There are two approaches to referencing the call or calls you’d like to delete.
- The first approach is to reference one individual scheduled call by its “key.” This key should already be stored somewhere within your Infusionsoft application, likely within a particular contact’s record who has already went through the scheduling process and supplied a standard or custom contact field to the “saveKeyTo” parameter.
- The second approach involves making reference to a particular “groupName” that you’ve defined during the scheduling process. Any call that was scheduled with a “groupName” will be deleted if so requested.
- A combination of both key and groupName can be supplied to the deletion service, and all relevant scheduled calls will be deleted
Supported Timezone Codes
In the event you can’t find a timezone for your region within the list below, you may also use any of the timezone identifiers supplied at this PHP documentation page; some examples of these identifiers are America/New_York, Canada/Atlantic, etc.
United States | ||
---|---|---|
Code | Timezone, State, or Region | Notes |
ETUS | Eastern Time | No exclusions |
CTUS | Central Time | No exclusions |
MTUS | Mountain Time | Excluding Arizona |
AZUS | Arizona (No DST) | No exclusions |
PTUS | Pacific Time | No exclusions |
ATUS | Alaska Time | No exclusions |
HTUS | Hawaii/Aleutian Time | Excluding Honolulu |
HONOUS | Honolulu | No exclusions |
Australia | ||
---|---|---|
Code | Timezone, State, or Region | Notes |
WTAU | Western Australia Time; Western Australia | Excluding Eucla |
EUAU | Eucla, Australia Time; Western Australia | No exclusions |
NCTAU | North Central Australia Time; Northern Territory | No exclusions |
SCTAU | South Central Australia Time; South Australia | No exclusions |
NETAU | North Eastern Australia Time; Queensland | No exclusions |
SETAU | South Eastern Australia Time; New South Wales, Victoria, and Tasmania |
No exclusions |
New Zealand | ||
---|---|---|
Code | Timezone, State, or Region | Notes |
NZ | New Zealand Time | No exclusions |
Europe | ||
---|---|---|
Code | Timezone, State, or Region | Notes |
WTEU | Western European Time | Excluding Iceland |
CTEU | Central European Time | No exclusions |
ETEU | Eastern European Time | No exclusions |
ICEEU | Iceland (No DST) | No exclusions |
Canada | ||
---|---|---|
Code | Timezone, State, or Region | Notes |
PTCA | Pacific Time; Yukon and British Columbia | No exclusions |
MTCA | Mountain Time; part of Nunavut Northwest Territories, Alberta, Saskatchewan |
No exclusions |
CTCA | Central Time; part of Nunavut, Manitoba, some of Ontario |
No exclusions |
ETCA | Eastern Time; most of Ontario, Quebec, Baffin Island |
No exclusions |
ATCA | Atlantic Time; Nova Scotia, New Brunswisk | No exclusions |
NTCA | Newfoundland Time | No exclusions |
Demo Video
Advanced Merge Field Notation
This Pocket Developer plug-in can use our Advanced Merge Field Notation anywhere a merge field is allowed. Advanced Merge Field Notation allows you to use merge fields from any table, e.g. Opportunity, Invoice, Company, Referral, Appointment, etc. It also allows you to Filter, Count, Max, Min, Compare, filter by IsEmpty and other advanced functionality.
For example, you may want to delay based on the date an an opportunity is expected to close or an appointment date and time. You can do this using Advanced Merge Field Notation.
See the Advanced Merge Field Notation documentation for more details.
Pre-Fetch
This Pocket Developer plug-in can build advanced data sets using our pre-fetch functionality. Pre-fetch allows you to find one piece of information, such as an ID, and pass it along to get to the exact piece of information you need.
For example, you may pre-fetch the Id of an opportunity owner before using it to get the date of the next appointment with the opportunity owner from the ContactAction table, to send a reminder email. This reduces the number of post snippets in a campaign and eliminates having to store a value in a field for the next step.
See the Pre-Fetch documentation for more details.
Contact Override
This Pocket Developer plug-in can merge information related to a contact other than the one going through the campaign, using our contact override functionality.
Imagine you do marriage counseling, for example. You may want to delay a reminder email, to a spouse, based on the appointment date in the record of the other spouse. You can do this, using Contact Override, with our Advanced Merge Field Notation.
See the Contact Override documentation for more details.
Pro Tips
- Universal Delay Timer should always be used in an HTTP POST snippet, from Campaign Builder, and should always be the last snippet in a sequence. To avoid unintended consequences, always give the API Goal triggered by Universal Delay Timer a unique callName.
- You can configure the Universal Delay Timer so contacts are not “in” the campaign, during the delays, by not connecting the timer goal to the sequence before it. This can be useful with long campaigns that email someone multiple times or campaigns that loop.
Frequently Asked Questions
Q. Can’t I do the same thing with an Infusionsoft field timer?
A. Field timer only gives you access to date fields in the Infusionsoft contact record. Universal Delay Timer allows you to use any field, in any table (e.g. Opportunity, Invoice, Company, Referral, Appointment, etc.) that represents a valid date.
Infusionsoft’s field timer requires the date to be contained in a date field. Universal Delay Timer can take a date in any format, including text (e.g next Thursday or September 13)
Infusionsoft’s field timer also does not allow the time to be set dynamically from a field. It is a drop-down in the timer. With Universal Delay Timer, the time field can also be any field, in any table, representing a time.
Contacts Company – Quickstart Guide
Installing the Plug-In
Note: You should have installed your Infusionsoft Pocket Developer plug-in using the instructions provided, if for any reason you have not installed your Pocket Developer plug-in click here to learn how.
Configuring the HTTP Post Snippet
URL:
The URL, on your server, where the Pocket Developer script is stored. For example:
http://yourdomain.com/scripts/PocketDeveloper/Blocks/TagsFly/tagsfly.php
Required Name Value Pairs:
contactId
- This is the contact Id for the contact record where fields will be retrieved (if any) and where the result of the counter iteration will be stored
Optional Name Value/Pairs:
default
- The default company name for a contact
request
- This is a URL to query at the end of the operation. The merge field {result} can be placed anywhere within the URL to include the result of the operation,allowing you to pass the value to another script
override
- Any contact ID to be used in override scenarios. Overriding creates an accessor to another contact’s data, other than the data associated with the current contact.
- To utilize override data, use Override.Field or ~Override.Field~ notation in place of the traditional Contact.Field or ~Contact.Field~ notation
Demo Video
Pro Tips
Frequently Asked Questions
- « Previous Page
- 1
- …
- 12
- 13
- 14
- 15
- 16
- …
- 31
- Next Page »