1 min read
Why Clean Customer Data is a Marketer's Best Friend
For marketers, clean customer data is crucial for optimizing your budget, allocating resources effectively, and building lasting customer...
In today’s digitally connected world, businesses that want to streamline their operations and enhance user experiences must create seamless integrations between their different systems and platforms. HubSpot, a leading customer relationship management (CRM) platform, offers powerful tools for building these types of integrations. However, developing highly effective integrations often requires a multi-faceted approach that addresses both real-time user interactions and efficient background processing.
This post delves into two key strategies for building robust HubSpot integrations:
Understanding each approach and potentially combining them can result in developers creating HubSpot integrations that are responsive to user needs, scalable, and resource-efficient. Whether you’re looking to enhance your CRM’s functionality with custom UI elements or establish seamless data flows between HubSpot and external systems, this guide will provide you with the knowledge and tools to achieve your integration goals.
Let’s explore how to harness the power of HubSpot’s development ecosystem to build integrations that significantly improve your business processes and elevate user experiences.
First, we look at common attributes relating to both architectures
About User Action-Based Integration
The attributes mentioned in 4, 5 & 6 are contingent on the server receiving the API calls. Most platforms can scale to thousands of API calls per second. However, at high volumes, user driven actions could lead to long running workflows or short running workflows. Deep understanding of the business requirements and the platforms involved will help drive the decision on whether this particular workflow is best served by a User driven architecture or a hybrid which we will discuss later. The reason for the distinction is important.
For example, consider two buttons on a screen. One button’s action loads a view of a table in another platform while the other button’s action downloads the table. The API call to view the table may take milliseconds to display to the user and falls well within the jurisdiction of User-driven architectures.
Now consider the button for downloading the table. In a situation where a table is large, an intelligent integration will determine that the file is too large to load in the browser in a reasonable amount of time. In this case, a best practice is to use a request-response flow where the user gets an initial notification that the process has begun, and another when the process is done,and the table is ready for the user to save. This scenario exemplifies the distinction between user and event driven integration. Some user driven actions might not completely finish and as such they benefit from a hybrid scenario which we will get into below.
About Event-Driven Integration
The attributes in 2 & 7 show hybrid scenarios of the event-driven architecture. In these attributes, we see how we can improve the overall user experience even with event-driven architecture where the user is not readily present or is present but expects some confirmation that a task is done. The use of email and alerts can be useful in providing feedback to the user and to manage their expectations, and improve their experience.
Hybrid
Now let’s talk about hybrid scenarios. Most architectures employ a hybrid approach in order to provide excellent user experience. A hybrid scenario combining user action-based and event-driven approaches can provide the benefits of both architectures. This approach can offer real-time responsiveness when needed, while also ensuring efficient background processing for larger operations.
It typically manifests as follows:
The user will typically start the process by clicking a button to generate a report or download a table as a spreadsheet. The architecture has a duty to provide real-time updates for critical or time-sensitive data or specified data.
The architecture will use scheduled events to handle regular (there is always some form of frequency involved), full synchronizations, or perform an action to ensure overall data consistency. It will also manage and sync change events for near-real-time updates without constant polling.
A queue-based system will provide a buffer for high-volume operations and to improve fault tolerance within the architecture. There is a datastore to store the event state so it can continue, if needed, or know where to pick up from when it starts running.
As solution providers, how do we determine whether to employ a user driven architecture or an event driven architecture or even when to blend them into a hybrid to get the both architectures? It boils down to asking the right questions.
Here are 10 categories of questions that help uncover the specific requirements. These questions cover various aspects of the project, including user needs, system requirements, data characteristics, and business processes. By answering these questions, you can gain a clearer picture of whether a user action-driven, event-based, or hybrid approach would be most suitable for your project.
Here’s a brief explanation of how to interpret the answers:
User action-driven architecture may be more suitable if:
Event-based architecture may be more appropriate if:
Hybrid approach might be best if:
It’s important to understand that these are general guidelines, and that the best architecture for your project will always depend on the specific requirements and constraints involved. It is also helpful to prototype or test different approaches to see which one performs best in your particular use case.
Summary
The key reasons for using each type of approach are:
Performance: Event-driven systems generally offer better performance at scale, as they can optimize resource usage and handle peak loads more efficiently.
User experience: User action-based systems provide immediate feedback, which can be preferable for certain interactions. However, event-driven systems can offer a smoother experience for complex or time-consuming operations.
Scalability: Event-driven architectures typically scale better, especially for systems with high transaction volumes or complex workflows.
Development complexity: User action-based systems can be simpler to implement initially, but event-driven systems often provide more flexibility and are easier to maintain in the long run.
Error handling: User action-based systems may provide more straightforward error handling and recovery, as errors can be immediately reported to the user. Event-driven systems require more careful consideration of error states and recovery processes.
Data consistency: User action-based systems can provide stronger guarantees of data consistency at the cost of performance. Event-driven systems may operate with eventual consistency, which can be more performant, but requires careful design to handle potential inconsistencies.
1 min read
For marketers, clean customer data is crucial for optimizing your budget, allocating resources effectively, and building lasting customer...
4 min read
TLDR: Breeze AI Is a Suite—But Breeze Intelligence Might Be the First Tool You Actually Need for Immediate Results You’ve invested in HubSpot....
1 min read
If you’re using SAP, along with a separate CRM, you may be missing out on powerful efficiencies and more importantly, revenue. Moving to HubSpot and...