Author: The AI Team

  • Send Email To Staff But Link To Contact

    Pocket Developer for Infusionsoft 5-Minute Install

    CHALLENGE

    When you create an email in Infusionsoft builder it automatically attaches the contact information of the person you are sending it to.

    SOLUTION

    This tutorial and accompanying video gives you the step-by-step on how to:

    1. Send an email to staff that contains the contact information of a contact going through a campaign that contains  a link that takes staff member to the contact record of contact going through the campaign.

    DEMO VIDEO

    Time Stamped Show Notes:

  • How To Find Table and Field Names In Infusionsoft

    Summary:

    In the How to Find Table and Field Names in Infusionsoft video, 2014 Infusionsoft Partner of the Year Kim Snider provides a quick run-through of how Pocket Developer users can find all the necessary table and field names to make their lives that much easier.

    How to Find Table and Field Names in Infusionsoft

    Time Stamped Show Notes:

    • 00:20 – Advanced Merge Field Notation is the “secret sauce” that enables Pocket Developer to do amazing things without knowing code
    • 00:31 – Advanced Merge Field Notation allows users to work with field otherwise unavailable (Appointments, Tasks, Affiliates, etc.)
    • 01:48 – Go to TheAPIGuys.com à Learning Center à Pocket Developer Documentation à Advanced Field Merge Notation à Pocket Developer à Frequently Asked Questions à Where do I find all of the table and field names? à Click on the tables and fields link embedded in the text
    • 02:28 – The tables and fields are documented with the programmer in mind, but they are still pretty straightforward
  • 02:42 – For those who have never programmed before, understand that Infusionsoft is the front-end for a database
  • 03:35 – Most people are not familiar with just how many field names there actually are or what they are actually named
    • 03:46 – Knowing the name is crucial because many of them are not available in the Merge drop-down…they need to be manually looked up
  • 04:20 – Not all tables and fields are named in the most logical way from a users-perspective
    • 05:20 – Example of this
    • 05:40 – Example of this
  • 06:30 – It can be intimidating at first but do not be deterred, it eventually becomes second nature
  • 07:20 – Another way to find the tables and fields is to go to Developer.Infusionsoft.com à Click on Table Documentation
  • How to Send Multiple Emails To Staff From Campaign Builder

    Summary:

    In the How to Send Multiple Emails to Staff from Campaign Builder, 2014 Infusionsoft Partner of the Year, Kim Snider, quickly runs the audience through a demonstration of how they can use the Email Anyone, Anytime plug-in to send follow-up emails to the auxiliary contacts of a given Contact Record.

    Send Multiple Emails To Staff From Campaign Builder

    Time Stamped Show Notes:

    • 00:12 – Kim introduces the scenario surrounding the video’s topic: The difficulty of using Infusionsoft to send multiple emails to auxiliary contacts
      • 01:29 – This is a problem when trying to build in notifications and nag emails into campaigns for staff, administrators, etc.
    • 01:43 – We solve this problem by using the Pocket Developer plug-in called Email Anyone, Anytime
    • 01:47 – The video makes two assumptions
      • 01:57 – That you (the user) already know how to install plug-ins from The API Guys
      • 02:03 – That you (the user) already know about HTTP Post snippets
    • 02:39 – Start by creating a Template which can be done by going into the Templates tab of Campaign Builder
      • 02:50 – The template is hardcoded with a main contact email address in the To field, as well as subject line and body copy
        • 04:32 – The To field will ultimately not matter as the Email Anyone, Anytime plug-in will overwrite anything that is in the template based on parameters you set within the plug-in
    • 03:25 – The email will ultimately send using an HTTP Post to the Email Anyone, Anytime plug-in
    • 03:40 – The HTTP Post is set up using a URL on your domain
    • 05:34 – Custom Delay Timer can delay the firing of any sequence by a manually determined amount of time
    • 07:02 – Dritte Dawg is the one going through the campaign (she is the contact record) but the emails are going to be sent to Nessa Dawg
    • 07:10 – Apply the appropriate tag (which in this case is TestEmailAnyone) to Dritte Dawg’s contact record to kick the process off
    • 07:32 – Nessa received the first email
      • 07:42 – The link within the email would normally drive to a form designed to populate with the information for Nessa, but in this case it has Dritte’s…this is a separate issue
    • 08:25 – The second email arrives and it is also addressed to Nessa
      • 08:37 – Per the instruction in campaign builder using Custom Delay Timer the second email was sent 30 seconds after the first
    • 08:50 – There are other solutions to solving the problem of How to Send Multiple Emails to Staff From Campaign Builder besides the Email Anyone, Anytime plug-in, but the plug-in streamlines the process and can perform a wide array of other functions
    • 09:41 – Kim’s contact information
  • How To Set Up HTTP Posts in Infusionsoft Campaign Builder

  • Prefetch Notation – Pocket Developer

    [wc_accordion collapse=”1″ leaveopen=”0″ layout=”box”]

    [wc_accordion_section title=”What It Does”]

    What It Does

    Prefetch is a feature built into our Advanced Merge Field Notation. Advanced Merge Field Notation is the way you tell Pocket Developer what field you want to work with. Prefetch allows you to burrow deep down into the tables to use a piece of data that is not easily retrieved using just the contact ID.

    For those of you who are programmers, Prefetch is Pocket Developer’s version of a join. For those of you who aren’t, ignore that. Doesn’t matter.

    Prefetch also allows you to save multiple pieces of data, coming from different places, into a single merge field. See the examples and demo video that follow to get a better idea of the power of prefetch.
    [/wc_accordion_section]

    [wc_accordion_section title=”Where I Can I Use It?”]

    Where I Can I Use It?

    Prefetch is available anywhere Advanced Merge Field Notation is. All “Core” Pocket Developer plug-ins have Advanced Merge Field Notation and therefore can use Prefetch. Core plug-ins are the yellow ones in the Pocket Developer Store.

    Core plug-ins include (at last count):

    Check the Pocket Developer Plug-In Store for the most updated list and to see all 30+ Pocket Developer plug-ins.
    [/wc_accordion_section]

    [wc_accordion_section title=”How To Use It”]

    How To Use It

    To use Prefetch, include it as a parameter in an HTTP POST snippet that calls a core Pocket Developer plug-in.

    prefetch example

    Prefetch Notation

    prefetch[label]

    • Each prefetch “parameter” will act as an
      independent lookup and store the result of said lookup in the specified label for the prefetch
    • Prefetch label can be anything. You can label a piece of data “purple” if you want
    • You can do more than one prefetch in a single HTTP POST snippet
    • Prefetch allows for cascading usage of lookup results. That is to say, the result of prefetch action #1 can be used within the lookup details of prefetch #2, #3, as well as the basic parameters of the plug-in.

     

    Prefetch Example

    To demonstrate some of the principles, consider the following example. Let’s assume that we would
    like to get the quantity of a line item within an order, and then include it in the textToSave
    parameter of the Any Text, Anywhere plug-in.

    To achieve this result, we would define the following key/value pairs within an HTTP POST action within campaign builder:

    contactId = ~Contact.Id~
    prefetch[order_id] = Order.Id.Newest
    prefetch[item_id] = OrderItem.Id.FilterBy(OrderId:{order_id}, ItemName:"Plan 1")
    prefetch[item_qty] = OrderItem({item_id}).Qty
    prefetch[notes] = Contact.ContactNotes
    textToSave = User has ordered {item_qty} of item #{item_id} in order #{order_id}nn{notes}
    saveTo = Contact.ContactNotes

    This specific example would have the effect of prepending the “User has ordered …” line to
    the contact’s ContactNote field.

    • prefetch[order_id] gets the ID of the newest order and stores it with a label of order_id
    • prefetch[item_id] uses the previously stored order_id to get the ID of the item on that order called Plan 1 and stores it with a label of item_id
    • prefetch[item_qty] uses the previously stored item_id to get the quantity ordered of that item and stores it with a label of item_qty
    • prefetch[notes] stores the contents of the big Contact Notes tab in the contact record
    • textToSave prepends the string “User has ordered {item_qty} of item #{item_id} in order #{order_id}”. The codes “/n” create line breaks. Then the previous contents of the field are appended using {notes}.

    [/wc_accordion_section]

    [wc_accordion_section title=”Demo Video”]

    Demo Video


    [/wc_accordion_section]

    [wc_accordion_section title=”Frequently Asked Questions”]

    Frequently Asked Questions

    Q. Where do I find all of the table and field names?

    A.Infusionsoft has a complete reference for all the tables and fields you can use with Pocket Developer’s Advanced Merge Field Notation. Although the table names, in particular, may not be immediately obvious, the descriptions will help you find what information is stored in each table.
    [/wc_accordion_section]
    [/wc_accordion]

  • 50 Campaign Builder Magic Tricks You Can Do With Pocket Developer

    pocket_developer_infographic

  • E-mail Anyone Any Time – Quickstart Guide

    [wc_accordion collapse=”1″ leaveopen=”0″ layout=”box”]

    [wc_accordion_section title=”Installing the Plug-In”]

    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.
    [/wc_accordion_section]

    [wc_accordion_section title=”Configuring the HTTP Post Snippet”]

    Configuring the HTTP Post Snippet

    email-anyone

    [wc_box color=”inverse” text_align=”left”]
    WarningNOTE: Everything in an HTTP POST is case sensitive. That includes the URL, the parameters on the left and the field names on the right. If caPitaLizaTion is wrong, your post will not work.
    [/wc_box]

    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

    [/wc_accordion_section]

    [wc_accordion_section title=”Configuring the Email Template”]

    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.
    [/wc_accordion_section]

    [wc_accordion_section title=”Demo Video”]

    Demo Video


    [/wc_accordion_section]

    [wc_accordion_section title=”Advanced Merge Field Notation”]

    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.
    [/wc_accordion_section]

    [wc_accordion_section title=”Pre-Fetch”]

    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.
    [/wc_accordion_section]

    [wc_accordion_section title=”Contact Override”]

    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.
    [/wc_accordion_section]

    [wc_accordion_section title=”Pro Tips”]

    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.
    [/wc_accordion_section]

    [wc_accordion_section title=”Frequently Asked Questions”]

    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?
    [/wc_accordion_section]
    [/wc_accordion]

  • Track end of support or upgrade period by adding time to purchase date

    Scenario:

    Infusionsoft Delay Timer 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:

    1. How do you put a date, six months from purchase, in a custom date field?
    2. How do you format the date so that it looks nice in emails?
    3. 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.

    [wc_box color=”success” text_align=”left”]
    Get the bonus videoExclusive Bonus – Read to the end to get the video of the private training I did for a client on this process with step-by-step set-up and in depth explanation of Pocket Developer superpowers.
    [/wc_box]

    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.

    [wc_box color=”success” text_align=”left”]Get the bonus videoExclusive Bonus – Get the video of the private training I did for a client on this process with step-by-step set-up and in depth explanation of Pocket Developer superpowers.

    [/wc_box]

    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.

    [wc_box color=”go” text_align=”left”]

    time-64x100Don’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.
    [/wc_box]

    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

    Where to find custom field names in Infusionsoft

  • Universal Delay Timer – Quickstart Guide

    [wc_accordion collapse=”1″ leaveopen=”0″ layout=”box”]

    [wc_accordion_section title=”Installing the Plug-In”]

    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.
    [/wc_accordion_section]

    [wc_accordion_section title=”Configuring the HTTP Post Snippet”]

    Configuring the HTTP POST Snippet

    scheduleCall

    [wc_box color=”inverse” text_align=”left”]
    WarningNOTE: Everything in an HTTP POST is case sensitive. That includes the URL, the parameters on the left and the field names on the right. If caPitaLizaTion is wrong, your post will not work.
    [/wc_box]

    URL for the POST action

    https://tag-2025.local/scheduleCall    or    https://tag-2025.local/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

    [/wc_accordion_section]

    [wc_accordion_section title=”Deleting a Scheduled Call”]

    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:

    https://tag-2025.local/deleteCall         or         https://tag-2025.local/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.

    deleteByKey

    • 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.

    deleteByGroupName

    • A combination of both key and groupName can be supplied to the deletion service, and all relevant scheduled calls will be deleted

    deleteByKeyAndGroupName

    [/wc_accordion_section]

    [wc_accordion_section title=”Supported Timezone Codes”]

    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

    [/wc_accordion_section]

    [wc_accordion_section title=”Demo Video”]

    Demo Video


    [/wc_accordion_section]

    [wc_accordion_section title=”Advanced Merge Field Notation”]

    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.
    [/wc_accordion_section]

    [wc_accordion_section title=”Pre-Fetch”]

    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.
    [/wc_accordion_section]

    [wc_accordion_section title=”Contact Override”]

    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.
    [/wc_accordion_section]

    [wc_accordion_section title=”Pro Tips”]

    Pro Tips

    1. 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.
    2. 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.

    [/wc_accordion_section]

    [wc_accordion_section title=”Frequently Asked Questions”]

    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.
    [/wc_accordion_section]
    [/wc_accordion]

  • Contacts Company – Quickstart Guide

    [wc_accordion collapse=”1″ leaveopen=”0″ layout=”box”]

    [wc_accordion_section title=”Installing the Plug-In”]

    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.

    [/wc_accordion_section]

    [wc_accordion_section title=”Configuring the HTTP Post Snippet”]

    Configuring the HTTP Post Snippet

     

    Contacts Company

    [wc_box color=”inverse” text_align=”left”]
    WarningNOTE: Everything in an HTTP POST is case sensitive. That includes the URL, the parameters on the left and the field names on the right. If caPitaLizaTion is wrong, your post will not work.
    [/wc_box]

    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

    [/wc_accordion_section]

    [wc_accordion_section title=”Demo Video”]

    Demo Video


    [/wc_accordion_section]

    [wc_accordion_section title=”Pro Tips”]

    Pro Tips

    [/wc_accordion_section]

    [wc_accordion_section title=”Frequently Asked Questions”]

    Frequently Asked Questions

    [/wc_accordion_section]
    [/wc_accordion]