Do you have a question? look no further
Recently active
I’m looking to pull quantities of a specific category of products out of a repeatable table as a tertiary product has to be priced as a ratio of that specific subset of products. How can I identify the total quantity of a specific subset of products from a repeatable table to use in my pricing rule for the other product?
When a customer uploads a file into the dealbox, is the email notification sent to the Dealroom community at the point of upload or only when the customer signs?
How are we able to sync back the Parent SKU for a bundle back to HubSpot?
we can use max function and round function togeher in the same fourmula ?
As a buyer, how do I confirm in Revisions that I agree to the terms? There isn’t an ‘Approve’ button like there was in the online version, right?
Hi, In Salesforce we use standard country picklist values. However when I sync it to DH it shows the country code. Is there a quick way to solve this without mapping each country code to a country name?
Hey everyone, I’m wondering if setting an Auto-Join rule for the Dealroom will also automatically share the proposal with the person who auto-joined?
Hi Team, is it possible to sync back the text when you click Sign Externally to the CRM?
When we change products in DH it generates a new pricebook in Salesforce. Do we have the option to update the existing pricebook instead of adding a new one? Or what is the best practice on this?
Hi team,Does SendGrid support more than one domain?If yes, how can we limit or config specific users to use one email domain and not the other?Thanks,Rabia
Want to generate a unique link per DealRoom that includes the customer’s account ID? Here’s a quick way to do it using a static link + a playbook question!🔗 How it works:Start with the static portion of your link (e.g. https://webforms.usa.pt-x.com/forms/Test%20Limited/debit?&ddplanreference=) Add a playbook question that captures the custom part of the URL—like the Customer Account ID Combine them in the embedded link field:https://webforms.usa.pt-x.com/forms/Test%20Limited/debit?&ddplanreference=%GQ.COMPANY_ID_DD% 💡 This is a great way to personalize links right from within the DealRoom.
When using discount tables for tiered based pricing, sometimes clients are asking to show the price of each tier in the pricing tables of the output document.I can think of two below approaches to this:Only when using advanced product filter in manual selection, we could create the tiered prices inside product attributes and then refer to them in the proposal attributes to display in the pricing tables Maintaining all of the tiered based pricing in the playbook and referring to these values in the proposal attributes (not the best for maintenance)Wondering if there’s a better approach to this that I haven’t though of. Please share your ideas.
Consumption-based deals are pricing agreements where customers are billed based on actual usage, rather than a fixed recurring subscription. These models are common in industries such as cloud services, marketing platforms, and telecommunications, where usage patterns can vary greatly over time.For example, Logz.io offers a consumption plan where customers are charged based on their use of specific products. Although only selected products are actively sold and billed, it's still essential to sync rate card information for all products—whether selected or not. How to Set Up Assignment Rules for Consumption PlansTo correctly reflect both selected and non-selected products in the CRM, define two assignment rules:Rate Card Assignment Rule (for unselected products):Ensures that all consumption products are synced to the CRM, even if they were not chosen.This allows for rate visibility without charging the customer. Product Assignment Rule (for selected products):Applies when a product is
In certain pricing or contract scenarios, it's necessary to restrict selected start or end dates so they always align with the first day of a calendar month. This approach ensures consistency across billing cycles and simplifies downstream logic tied to monthly intervals. The following method explains how to configure this behavior using calculated date logic. How to Set Up the Base Date and User Input Begin by creating two date questions:One date question that acts as the base date. This should always be a fixed value—such as January 1, 2025—and represents the anchor point for all date calculations.Another date question that is visible to the user, allowing them to select any date. Once a user selects a date, extract the month and year from that input. How to Calculate the Time Difference Next, determine the difference in time between the base date and the selected date. Since the base year is fixed, you can simplify your logic by hardcoding it when calculating the year difference. U
Some customers work with Distributors who require different SKU codes depending on specific product configurations. These variations typically relate to factors such as package type or environment. For example, in Keepit, the original SKU may change based on the selected package type. In AvePoint, it may depend on the environment.To handle these scenarios effectively, you can dynamically modify or extend the SKU using proposal attributes that concatenate additional data to the base SKU. How to Configure SKU Extensions First, create playbook questions that return the relevant extension values based on user selections. For instance:A question for package type that outputs a specific string (e.g., -ADV or -STD).A similar question for duration if your SKU structure varies based on contract length.These questions should return values that can be appended to the base SKU. How to Build the Final SKU Using a Proposal Attribute In the proposal attribute, use a concatenation formula to combine t
In certain business scenarios, clients may need to extract a value only from the last system opened in a Multi-System configuration. Since the number of systems opened is not known in advance, hard-coding logic for each instance is not feasible.This method allows you to dynamically identify and fetch the value from the last opened system. How to Create a Counter for System TrackingAdd a numeric question inside the Multi-System group. Set its default value to 1. This question will act as a system counter and will be used in an aggregate function (SUM) to determine the total number of systems opened at runtime.How to Use a Proposal Attribute to Identify the Last System To isolate the value from the last system, use conditional logic with the FLOOR() function. Example scenario:Assume the following values from each system:System 1: 100 System 2: 200 System 3: 300Let N be the total number of systems (i.e., the result of the counter using SUM()).Apply the formula:Value * FLOOR(SystemIndex /
Exclude filters are a powerful feature used to dynamically remove or restrict options based on previous user input or existing customer data. Below are three common use cases that show how to implement exclude filters effectively in subscription flows, inclusion logic, and product selection. How to Remove Items from a Text List Based on Existing SubscriptionsUse Case 1: Subscriptions This scenario involves preventing users from selecting a product they already own in a new subscription quote. For example, if a client already has Product A from a previous subscription, it should not appear in the current selection list. InstructionsCreate a dedicated question group for exclude logic. For each product in your picklist, create a text answer question. Configure conditional answers based on whether the product exists in the client's current subscription. Then, create a text list question that includes all possible products. Add the previously created text answers as exclude filters on t
By default, subscription data in HubSpot is often filtered based solely on status. However, certain business use cases require fetching not only active subscriptions but also those that have expired within the past three months. This article outlines how to achieve that using a custom field and a structured query. How to Calculate Time Since Subscription End Date in HubSpot To begin, create a custom calculated property in HubSpot that determines the time difference between the current date and the subscription’s end date. This property will allow you to filter subscriptions based on how long ago they expired.The calculated field should return the difference in milliseconds between today and the end date. HubSpot will display this value as a number, making it usable in filters or API queries.For reference, three months is equal to approximately 7,888,128,000 milliseconds. How to Structure the API Query Once the field is created and populated, you can query both active subscriptions and
In some configurations, it's necessary to identify the latest date entered across multiple entries in a repeatable question group. This is useful in workflows where you need to calculate end dates, trigger validations, or control the visibility of sections based on the most recent event or timeline.The method below outlines how to calculate the maximum date using standard functions and formula questions. How to Configure the Max Date Logic In a regular question group, create a base date question. This date will serve as the reference point for all calculations. In the repeatable question group, add a formula question that calculates the number of days between the base date and the selected date in that row. Back in the regular question group, create a formula question using the MAX_IN_GROUP() function to extract the maximum number of days from all repeatable entries. Finally, add a formula date question that adds the maximum number of days to the base date, effectively reconstructin
One common use case when working with multiple repeatable question groups is when you want a SKU in one group to pull a value, such as quantity, from a specific matching row in another repeatable group. This configuration allows you to tie product selections directly to user-defined attributes or inputs. How to Reference a Specific Row from Another Group To pull a value (e.g., quantity) from a matching row in another repeatable group, the assignment rule must include a comparison that matches a field in both groups. This ensures the value is only pulled when the context aligns—such as matching sites or environments. Example Scenario Let’s assume the following:In Question Group 1, the user defines a list of sites with quantities for each.Question_group_1Site_List Quantity Site 1 5 Site 2 3 In Question Group 2, the user selects products, and you want a SKU to pull its quantity from the matching site defined in Question Group 1.Question_group_2Site_List SKU Site 1 Product A
In some use cases, clients want to sync the start date of a selected period from a Multi-System question group directly to an opportunity field in the CRM. For this scenario, we’ll assume there can be a maximum of three periods, and the user selects which period to sync. How to Capture the Selected Period’s Start Date To implement this logic:Set up a global question outside the Multi-System group. This will determine which period (e.g., Period 1, Period 2, or Period 3) should be used for syncing. Inside the Multi-System group, ensure you have a Start Date question for each row (period).
Scenario AtlasIQ, a SaaS company offering AI infrastructure tools, often builds proposals with multiple pricing packages—such as “Starter,” “Growth,” and “Enterprise”—using DealHub’s Multi-System functionality. While this gives customers flexibility, it created operational friction. Buyers would verbally choose one offer, but sales reps then had to manually remove the unselected systems and products from Salesforce, risking errors and slowing down approvals.To streamline this, AtlasIQ configured a dropdown menu in the DealRoom that lets buyers select the offer they want. Behind the scenes, DealHub converts that selection into a numeric value, which is used to flag which quote system to keep. All other systems are tagged for deletion via a synced proposal attribute (Offer__c) and a custom Salesforce field (Delete__c).Once the buyer submits their choice, Salesforce automatically deletes the non-selected quote lines using DealHub’s Quote Line Deletion package. The final CRM record reflect
ScenarioOptiCloud, a mid-size SaaS company offering customizable cloud analytics, handles complex proposals with multiple SKUs, implementation services, and region-specific legal clauses. Their Sales Ops team was struggling with:Inconsistent formatting in output documents Manual insertion of legal clauses and billing tables Lack of dynamic fields (e.g., product-specific T&Cs, pricing tables, renewal dates) Inability to quickly preview or adjust order forms on a per-client basisTo address this, they standardized on DealHub’s Document and Sub-Document Templates functionality to automate and professionalize document generation.Their most important need right now is to create a custom table in their output document with custom borders. They want to utilize DealHub’s HTML capabilities to achieve this.They also want to be able to add horizontal lines across their document. Solution Step 1: Adding a basic table in Output DocumentsClick on Add Element, then select Text SectionInsert a tabl
Scenario DeployLogic, a SaaS provider offering modular implementation and onboarding services, often sells tailored solution packages to enterprise clients. These packages include multiple components like:Integration Setup Data Migration Training Programs Custom Feature DevelopmentEach of these services has its own start and end date, depending on resource availability, client readiness, and deployment sequencing. The RequirementsWhen a DealHub proposal includes multiple services within a repeatable table, the client success team wants to:Display a single, accurate project timeline summarizing all selected services. Show the earliest start date and latest end date for the entire engagement. Avoid manual errors or the need for reps to calculate summary dates outside the system.This summary data is crucial for the prospect and for setting expectations internally for resource planning.Overview:Using the method in the document, DeployLogic configures DealHub to automatically surface:The Fi
Scenario TechNest, a mid-market SaaS provider of enterprise collaboration tools, operates a multi-tier sales model:Sales Reps can offer limited discounts. Managers and VPs can approve deeper discounts for strategic accounts.However, rather than approving based on a discount percentage, TechNest sets absolute floor prices per SKU. For example, while the list price for the “Collaboration Suite Pro” is $100/user/month, Sales Reps must not go below $80, and Managers must not approve less than $70.DealHub’s standard approval workflows rely on discount percentage thresholds—not specific price points.To meet this requirement the team implemented a flexible floor-price-based approval system using DealHub’s product and proposal attributes, assignment rules, and general workflows, outlined below. Solution PRODUCT ATTRIBUTEIn Products, click on Actions, then click on Settings, then select the “Product Attributes" tab. Click Add Attribute and change Type to “Number”Label this attribute “Floor Pri
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.