Blog

  • How to Implement AI in Your Business Workflow (2026 Edition)

    How to Implement AI in Your Business Workflow (2026 Edition)

    If 2025 was the year you heard about AI at every conference and in every newsletter, 2026 is the year you need to actually do something about it. The businesses that treated AI as experimental last year are now moving faster, making fewer errors, and freeing up their teams for higher-value work. The question isn’t whether to implement AI anymore—it’s how to do it effectively without disrupting your operations.

    This guide walks you through a practical, step-by-step approach to integrating AI technology into your business workflows, with real implementation strategies you can start using this week.

    Step 1: Identify Your Bottlenecks (Don’t Start with the Technology)

    The biggest mistake businesses make is choosing AI tools first and then trying to find problems to solve. That’s backwards, expensive, and usually leads to unused software subscriptions.

    Top view of business strategy charts and diagrams highlighting stages and steps.
    Photo by RDNE Stock project on Pexels

    Instead, spend a week documenting where your team gets stuck. Ask yourself:

    • What tasks do your employees complain about most?
    • Where do projects consistently slow down?
    • What repetitive work takes up hours but doesn’t require expertise?
    • Which customer requests could be handled faster?

    Action Item

    Hold a 30-minute meeting with your team. Ask everyone to list their three most time-consuming repetitive tasks. You’ll quickly see patterns emerge—these are your AI opportunities.

    Step 2: Start with One Workflow (The 80/20 Rule)

    Business improvement doesn’t come from implementing everything at once. It comes from fixing the one thing that’s causing 80% of your friction.

    Look at your list from Step 1 and choose the workflow that meets these criteria:

    • It’s repetitive and follows a predictable pattern
    • It currently takes significant time (at least 5 hours per week)
    • It doesn’t require complex human judgment
    • Success is easy to measure

    Common starting points we see working well include:

    • Email triage and response: AI can categorize incoming emails, draft responses for common questions, and flag urgent items
    • Document processing: Extracting data from invoices, contracts, or forms
    • Meeting notes and follow-ups: Transcribing meetings and generating action items
    • Customer service responses: Handling routine inquiries and routing complex issues to humans

    Step 3: Choose Simple Tools First (Not Enterprise Platforms)

    You don’t need a $50,000 enterprise AI platform to get started. Many automation workflows can be built with accessible tools that cost less than your monthly coffee budget.

    For your first implementation, look for tools that:

    • Integrate with software you already use
    • Offer templates or pre-built workflows
    • Provide clear documentation
    • Let you start small and scale up

    Practical Starting Points

    For email and communication: Tools like Gmail’s Smart Compose or Outlook’s AI features for basic writing assistance are built-in and free. For more substantial gains, try Claude (Pro) or ChatGPT (Plus or Team) for drafting complex emails, proposals, and customer responses. Create a prompt template (e.g., “Draft a professional follow-up email to a client who requested a quote for our business cleaning service.”) and save it for reuse.

    For document processing: Google’s NotebookLM excels at analyzing multiple documents simultaneously. Upload a set of documents and ask questions across all of all of them. Or supply Claude or ChatGPT with an example of a recurring document type (like a weekly report or client intake form) and ask it to create one based on new input.

    For customer service: Many CRM systems, such as HighLevel (which we can help you implement), now include basic AI chatbot functionality and even AI voice response. Train the AI on FAQ or your website and it can handle many high-volume inquiries (like business hours or basic product questions), and direct you to respond when needed.

    The key is proving value with simple implementations before investing in complex systems.

    Step 4: Set Up Your First Automation (The 3-Day Sprint)

    Here’s a realistic timeline for implementing your first AI-powered workflow:

    A robot and a human hand clinking glasses of red wine, symbolizing technology and celebration.
    Photo by Pavel Danilyuk on Pexels

    Day 1 – Map Your Process:

    • Document every step of your current workflow
    • Identify which steps are purely mechanical (data entry, formatting, routing)
    • Note where human judgment is actually required

    Day 2 – Build and Test:

    • Set up your chosen tool with a simple version of the workflow
    • Test with real examples, but don’t go live yet
    • Adjust based on what works and what doesn’t

    Day 3 – Pilot Launch:

    • Run the automation alongside your manual process
    • Compare results to catch any issues
    • Train your team on when to use it and when to intervene

    This approach lets you prove value quickly without risking your critical operations. You’re testing AI technology in a controlled way before fully committing.

    Step 5: Measure Results (Make Your Case for Expansion)

    A laptop displaying an analytics dashboard with real-time data tracking and analysis tools.
    Photo by Atlantic Ambience on Pexels

    Track specific metrics from day one:

    • Time saved: How many hours per week is your team reclaiming?
    • Error reduction: Are you seeing fewer mistakes in repetitive tasks?
    • Cost impact: What’s the ROI of the time saved versus the tool cost?
    • Team satisfaction: Are people happier not doing repetitive work?

    Step 6: Scale Systematically (Not All at Once)

    Once you’ve proven success with one workflow, you can expand strategically:

    • Month 2: Add one more workflow using lessons learned from your first implementation
    • Month 3: Connect your automations together for compound efficiency gains
    • Month 4+: Train team members to identify and propose their own automation opportunities

    The businesses winning with AI in 2026 aren’t the ones with the most tools—they’re the ones who’ve methodically automated their friction points one at a time.

    Moving Forward: Your AI Implementation Checklist

    To implement AI-powered automation workflows in your business:

    1. Document your current bottlenecks (this week)
    2. Choose one high-impact workflow to automate (by end of week)
    3. Select an appropriate tool and run a 3-day pilot (next week)
    4. Measure results for two weeks before expanding
    5. Add one new automation monthly based on proven ROI

    The difference between businesses that thrive with AI and those that struggle isn’t technical sophistication—it’s methodical implementation. You don’t need to transform everything overnight. You need to start solving real problems with practical tools, measure what works, and build from there.

    If you’re unsure where to start or want guidance on identifying your highest-impact automation opportunities, we help businesses implement practical AI solutions without the hype. Our 14 years of integration experience means we focus on what actually works for small-to-medium businesses, not what makes for exciting headlines. Book a free consult now.

  • A Step-by-Step Guide to Choosing Between AI and API Integration

    A Step-by-Step Guide to Choosing Between AI and API Integration

    Every business owner’s inbox is drowning in it. LinkedIn is saturated with it. Conference speakers can’t stop talking about it. AI, AI, AI. The promise is always the same: revolutionary transformation, unprecedented efficiency, game-changing results. But here’s what nobody tells you: sometimes the most powerful solution for your business isn’t AI at all—it’s a well-implemented API integration that just works, every single time.

    After 14 years of building custom integrations for businesses, we’ve developed a simple framework to help you cut through the noise and make the right choice for your specific workflow challenges.

    Step 1: Define Your Outcome Requirements

    Before evaluating any technology, answer this critical question: Do you need consistency or creativity?

    black and white robot toy on red wooden table
    Photo by Andrea De Santis on Unsplash

    If your workflow requires the exact same outcome every time—like syncing customer data between your CRM and accounting software—you need deterministic processing. This is where API integration excels. Traditional automation doesn’t guess, improvise, or interpret; it executes precisely what you programmed it to do.

    Conversely, if you’re generating marketing content variations, analyzing sentiment in customer feedback, or creating personalized recommendations, AI’s probabilistic nature becomes an asset rather than a liability.

    Real-World Test:

    • Choose API integration when: A mistake would create serious business consequences (billing errors, compliance issues, inventory discrepancies)
    • Consider AI when: You need variety, personalization, or human-like interpretation where minor variations are acceptable

    Step 2: Map Your Data Security Requirements

    Here’s an uncomfortable truth about AI: when you send data to most AI services, you’re sharing it with third-party systems. Your customer information, proprietary processes, and business intelligence pass through external servers.

    Chain-locked book, phone, and laptop symbolizing digital and intellectual security.
    Photo by Pixabay on Pexels

    API integrations between your existing software systems keep your data within your controlled environment. When you connect your e-commerce platform to your fulfillment system via API, customer data travels directly from point A to point B—no detours, no external processing.

    Ask yourself: Am I comfortable with this data potentially being used to train AI models or passing through third-party infrastructure? If the answer is no, API integration is likely your path forward.

    Step 3: Evaluate Your Need for Predictability

    Creative arrangement of smart light bulbs and smartphone illustrating smart home technology.
    Photo by Jakub Zerdzicki on Pexels

    Consider this scenario: An AI tool might analyze your customer’s purchase history and suggest sending them a promotional email about complementary products. That’s helpful. But an API integration ensures that email actually gets sent to the right person, with the correct pricing, at precisely 9 AM on Tuesday when your analytics show the highest open rates—and it does this automatically, every single week, without fail.

    AI excels at recommendations and insights. APIs excel at execution and reliability.

    The Hybrid Approach:

    The most sophisticated solution often combines both: AI generates the personalized content recommendations, while API integration handles the reliable delivery, data synchronization, and workflow automation. You get creativity where it matters and consistency where it counts.

    Step 4: Calculate Your True Requirements

    Not every workflow problem requires cutting-edge technology. Sometimes you’re paying for AI capabilities you’ll never use when a straightforward API integration would solve your problem at a fraction of the cost.

    Visual diagram showing automated workflow process with connected nodes and arrows illustrating systematic integration
    Photo by Christina Morillo on Pexels

    Before implementing any solution, document:

    • The specific problem you’re solving (not the technology you think you need)
    • The consequences of errors or inconsistency
    • Whether you need the same result every time or varied outputs
    • Your data security and compliance requirements
    • Your budget for both implementation and ongoing maintenance

    Make the Right Choice for Your Business

    Professional reviewing a checklist or requirements document for technology implementation planning
    Photo by RDNE Stock project on Pexels

    The technology landscape doesn’t need to be confusing. With 14 years of experience implementing both AI solutions and API integrations for businesses like yours, we can help you cut through the hype and identify exactly what your workflow actually needs.

    Book a free 30-minute consultation where we’ll assess your specific situation and recommend whether AI, API integration, or a hybrid approach makes the most sense for your business goals. No sales pitch—just practical expertise and honest recommendations.

    Because the best technology isn’t the newest or most buzzworthy—it’s the one that reliably solves your actual problem.

    Professional reviewing a checklist or requirements document for technology implementation planning
    Photo by RDNE Stock project on Pexels
  • Create Asana Tasks with HTTP Request from Infusionsoft Campaign Builder

    Using our Pocket Developer HTTP Request plugin, you can create tasks in Asana directly from Campaign Builder. (Note that details about Asana’s API are available here.)

    1. To use Asana’s API, you will need to get a Personal Access Token from Asana. Follow Asana’s instructions to create your Personal Access Token. Be sure to copy the token and keep it in a safe place! The token begins with 0/ followed by a long alphanumeric string. (Note that anyone with access to Campaign Builder will be able to see this key to your Asana account. You could create multiple tokens for multiple purposes if you like, but to make things simple I just created one called “Infusionsoft Posts” that I use for all posts from Infusionsoft.)
    2. Creating an Asana task requires designating a project. To get a project’s identifying number, click on the project name in the left nav bar in Asana. In the url bar, you will see a number between backslashes, appearing just before /list. Copy this project number for later. (If you don’t want to designate a project, you can designate a workspace instead.)
    3. If you want to assign the task to someone, you will need their identifying number as well. Unfortunately there isn’t any url exposure of this information, but once you are logged in to Asana you can get a list of all the users in your account by going to https://app.asana.com/api/1.0/users. Look for the id number that corresponds with the person to whom you want to assign the task; the id number comes before the name inside braces. (You can similarly get a workspace id by using /workspaces instead of /users in the url.)
    4.  In Campaign Builder, create an HTTP Post. The Post URL will be https://pocketdeveloper.net/Blocks/HttpRequest/ and the parameters will begin with
      • App = YOUR PDEV TOKEN
      • contactId = ~Contact.Id~
      • url = https://app.asana.com/api/1.0/tasks
      • additionalHeaders[0] = Authorization: Bearer INSERT YOUR PERSONAL ACCESS TOKEN
      • params[projects] = YOUR PROJECT ID NUMBER (Note that you can assign the task to multiple projects by using a comma-separated list.)
      • params[asignee] = ID NUMBER OF PERSON TO ASSIGN TO THE TASK (optional)
      • params[name] = THE TITLE YOU WANT TO GIVE THE TASK (Note that you can include merge fields for dynamic data input.)

    Now you are ready to publish your HTTP Post and test run it. (For more information on Asana task parameters you can set, see https://asana.com/developers/api-reference/tasks#create.)

  • From User List Box to Email

    Infusionsoft’s User List Box type field can be handy. If you want to track which staff members are connecting with contacts in particular roles, for instance, you can create a custom field for each role. The User List Box type field will show you a dropdown list of all your Infusionsoft users for easy data entry in the contact record screen or an internal form or webform.

    Unfortunately if you want to send automatic email notices to those staff members, the User List Box is basically useless. You’d need to have a separate custom field (in addition to the User List Box) to store the email. For many users, burning up so many custom fields is a problem.

    With our Advanced Merge Field Notation, you don’t need to store user data in additional custom fields. You can drill down through the User List Box to get any readable data from the User table.

    First, it helps to understand that while the User List Box displays a name, the data it actually contains is the user’s id number. This is the number you would see in the url if you went to edit the user data in Infusionsoft (Admin > Users > click user name).  So what we need to do is get the email field for that user id from the User table.

    To do so, we’re going to use the parentheses reference notation in Pocket Developer. You can get any specific record from a table by inserting the id number in parentheses after the table name and before the period. For instance:

    Contact(12).FirstName

    will get the contents of the FirstName field for contact id number 12. Similarly:

    User(12).Email

    will get the email address of user id number 12. Of course you won’t want to hardcode the id number each time you use Pocket Developer; instead you’ll want to merge in the User List Box field contents like this:

    User(~Contact._UserListBox~).Email

    You can use this to either temporarily get the email address and put it in an email field (e.g., EmailAddress2) or custom field, adn then send the email out using that field. Or, if you are using the PDev Email Anyone plugin, you can simply enter that text as the value of the “to” parameter:

     

  • Conditional operators for Pocket Developer: {if} {then} {else} Notation

    Infusionsoft’s Decision Diamonds are fantastic. But sometimes they just aren’t sophisticated enough. You can set up complicated cascading diamonds, but it’s not much fun. So we thought we’d add the ability to do some conditionals in Pocket Developer plugins. To this end, we developed the {if} {then} {else} notation.

    Let’s say you want to use AnyText to save something to a custom field, but only if another custom field has a value. For instance, maybe if the contact has a spouse, you want to put the number 2 in the “Number Registered” field. You could create an HTTP Post like this:

    In the textToSave value, insert {if} followed by the field you want check for a value. Then insert {then} followed by whatever value you want to save to the saveTo field. This can be a number or text.

    You can get more complicated by adding an {else} statement. Let’s in addition to entering a 2 when there’s a SpouseName, you want to enter a 1 if there is no SpouseName, you could make your textToSave value like this:

    {if} Contact.SpouseName {then} 2 {else} 1

    Remember, if you want to merge in data from a merge field, include the tildes:

    {if} Contact.SpouseName {then} This person’s spouse is ~Contact.SpouseName~. {else} This person is not married.

    (I’m not really sure why you’d want to do this, but you get the idea.)

    Another way to use this conditional notation might be to set a default. For instance, if you are using AnyDate and you have set the date parameter to a field that is empty, the process will fail as a bad request (because you have given it no date input to convert or copy). You can fix this by using {else} to set a default date like this:

    {if} Contact._FieldWithDate {then} ~Contact._FieldWithDate~ {else} today

    With this value, if there is a date in the FieldWithDate field, it will be saved (to whatever field you designate in the saveTo parameter value), but if there is not date in FieldWithDate, it will set the date in the saveTo field to today’s date.

    As always, we recommend thorough testing as you implement these advanced features. If you have any questions or run into any issues, let us know!

     

     

  • Automatically mark a task complete

    Using Advanced Merge Field Notation (AMN) with Pocket Developer Any Any Date, Anywhere plugin in an HTTP Post in Campaign Builder, you can automatically mark tasks complete.

    In order to mark a task complete, you need to set the CompletionDate field on the ContactAction table complete. (The ContactAction table is where tasks, appointments, and notes are stored. See Working with tasks, appointments, and notes for more details.) Doing so with AnyDate is as simple as setting the saveTo parameter to the value “ContactAction.CompletionDate”. However, this will ONLY work properly if the task you want to mark complete is the most recently created task, appointment, or note.

    To reliably mark the correct task complete, we need to first “prefetch” the id number of the task and store it in a variable. We will then insert that variable in parentheses after the table name, so that when Pocket Developer retrieves the table it gets the entry with that specific id number, rather than the most recently created entry.

    To start with, we want to tell PDev to get the Id number from the ContactAction table, so set the prefetch value to:

    ContactAction.Id

    Then we want to filter the table for just tasks that are not complete, so we’re going to use AMN in our prefetch value:

    ContactAction.Id.FilterBy(ObjectType:Task,CompletionDate:~null~)

    We’ve now targeted the most recently created incomplete task to mark as incomplete. (Well, we need to add that id number in parenthesis in the saveTo value, but more on that later.) This may be enough to reliably target the task to mark complete. But in the event the task we want is older, we can continue to add FilterBy criteria. Let’s say the task always has the Action Description “Feed Unicorns”, we can search for that specific description:

    ContactAction.Id.FilterBy(ObjectType:Task,CompletionDate:~null~,
    ActionDescription:"Feed Unicorns")

    Note that the wildcard % is available, so if the task always starts with “Feed” but might be “Feed Unicorns” or “Feed Vampires”, we can use:

    ContactAction.Id.FilterBy(ObjectType:Task,CompletionDate:~null~,
    ActionDescription:"Feed %")

    to get the most recent of either kind of task.

    Once you have filtered for the specific task id, we just need to make sure the task id variable is used in the saveTo value. The variable is labeled in brackets after the “prefetch” name, so the complete prefetch name/value line will look like this:

    prefetch[taskid] = ContactAction.Id.FilterBy(ObjectType:Task,CompletionDate:~null~,
    ActionDescription:"Feed Unicorns")

    The prefetch label can be anything, but must contain some alphabetic characters (i.e., not numbers only) and should have no spaces or special characters. In this case we’ve used “taskid” as a clear label of what the variable contains. We will insert this label in curly braces where we want the variable value to be used. In this case, we want to use it in parentheses after the table name, so as to identify the specific entity to change.

    saveTo = ContactAction({taskid}).CompletionDate

    We just have to set up the HTTP Post in the campaign where we want the task to be marked complete, and we’re done! Here’s what the HTTP Post looks like in the end:

  • Working with tasks, appointments, and notes

    The Pocket Developer plugins Any Text Anywhere and Any Date, Any Format, Anywhere really do mean anywhere… not just on contact records. But getting access to other record types requires a little bit of know-how.

    Accessing information in tasks, appointments, and notes is particularly tricky, because believe it or not these three different entities are all stored in the same data table in Infusionsoft. That means you usually need to specify which type of entity you are looking for. Even so, there’s a good bet that the contact will have more than one of these entities, so you’ll also need to be specific about which one you want to work with.

    That’s where our Advanced Merge Field Notation (we just call it AMN) comes in. Let’s break down how to use AMN to get data to (or from) tasks, appointments, and notes.

    Power user tips

    Infusionsoft stores tasks, appointments, and notes all in the same database table, named ContactAction. (View Infusionsoft’s table schema here.) The first thing you’ll want to know is how the database field relate to each of the three entities.

    [table]
    Database field name, Task, Appointment, Note
    ActionDate, Action Date, Appt Date, –
    ActionDescription, Title or Action Description, Title or Action Description, Title
    ActionType, Action Type, Action Type, Type
    CompletionDate, Completion Date, -, –
    CreationNotes, Description or Creation Notes, Description or Creation Notes, Description
    EndDate, -, Appt End, –
    Location, -, Location, –
    ObjectType, Task, Appointment, Note
    Priority, Priority, Priority, –
    [/table]

    In addition to these visible field, there is one important invisible field called “IsAppointment”. This field is set to 1 if the entity is an appointment, so it is useful for narrowing down items to just appointments.

    Another field to know about is the CompletionDate field. This is only relevant to tasks. If there is no date in that field, the appointment will appear in Infusionsoft as incomplete. If you add a date there (e.g., using AnyDate), the task will appear in Infusionsoft as completed.

    Also, few people use them but you can in fact add custom fields to tasks, appointments, and notes. The catch is that those custom fields appear for all three of those entities,o if you want a custom field on Appointments, that custom field will also appear on Tasks and Notes. As with all records types, you get 100 custom fields, but that’s across all three entities that get stored on this table.

    Screenshot 2016-07-14 09.37.43

  • Logs and Error Descriptions

    You can view the logs of your Pocket Developer request by logging in to your account and navigating to My Account > View PDev Logs. To review the specific information for the call, click the plus sign to reveal the full response code and the parameters that were received by the plugn. This can help you diagnose the issue.

    Use the dropdown fields to filter your logs by App, Plugin, Dates, or Status. There are three status groups, as follows:

    200: OK

    The call went through successfully.

    300: Multiple Choices

    This POST was successful, but something was not able to be updated. For example, if no Opportunity was found to be moved, StageMoves would return 300. Or if an incorrect field database name is used, AnyText will return 300. Errors of this sort may result in only part of the data being put through, or none of the data, depending on the error.

    400: Bad Request

    This means that the POST was not successful for a specific reason. This should come with a more specific error message in the response code, depending on the plugin. For instance, if you AnyDate receives data that is not a date or a date string, it will return 400. Also, if the plugin fails to connect to Infusionsoft to finish processing, it will return 400.

  • You didn’t select either red or blue!

    [ifurlparam param=”inf_field_Email”]The email submitted, [urlparam param=”inf_field_Email”], is in the query string.[/ifurlparam]

  • You asked for blue!

    [ifurlparam param=”inf_field_Email”]The email submitted, [urlparam param=”inf_field_Email”], is in the query string.[/ifurlparam]