/*! elementor-pro - v3.28.0 - 30-03-2025 */ "use strict"; (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["woocommerce-checkout-page"],{ /***/ "../modules/woocommerce/assets/js/frontend/handlers/base.js": /*!******************************************************************!*\ !*** ../modules/woocommerce/assets/js/frontend/handlers/base.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports) => { Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; class Base extends elementorModules.frontend.handlers.Base { getDefaultSettings() { return { selectors: { stickyRightColumn: '.e-sticky-right-column' }, classes: { stickyRightColumnActive: 'e-sticky-right-column--active' } }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { $stickyRightColumn: this.$element.find(selectors.stickyRightColumn) }; } bindEvents() { // Add our wrapper class around the select2 whenever it is opened. elementorFrontend.elements.$document.on('select2:open', event => { this.addSelect2Wrapper(event); }); } addSelect2Wrapper(event) { // The select element is recaptured every time because the markup can refresh const selectElement = jQuery(event.target).data('select2'); if (selectElement.$dropdown) { selectElement.$dropdown.addClass('e-woo-select2-wrapper'); } } isStickyRightColumnActive() { const classes = this.getSettings('classes'); return this.elements.$stickyRightColumn.hasClass(classes.stickyRightColumnActive); } activateStickyRightColumn() { const elementSettings = this.getElementSettings(), $wpAdminBar = elementorFrontend.elements.$wpAdminBar, classes = this.getSettings('classes'); let stickyOptionsOffset = elementSettings.sticky_right_column_offset || 0; if ($wpAdminBar.length && 'fixed' === $wpAdminBar.css('position')) { stickyOptionsOffset += $wpAdminBar.height(); } if ('yes' === this.getElementSettings('sticky_right_column')) { this.elements.$stickyRightColumn.addClass(classes.stickyRightColumnActive); this.elements.$stickyRightColumn.css('top', stickyOptionsOffset + 'px'); } } deactivateStickyRightColumn() { if (!this.isStickyRightColumnActive()) { return; } const classes = this.getSettings('classes'); this.elements.$stickyRightColumn.removeClass(classes.stickyRightColumnActive); } /** * Activates the sticky column * * @return {void} */ toggleStickyRightColumn() { if (!this.getElementSettings('sticky_right_column')) { this.deactivateStickyRightColumn(); return; } if (!this.isStickyRightColumnActive()) { this.activateStickyRightColumn(); } } equalizeElementHeight($element) { if ($element.length) { $element.removeAttr('style'); // First remove the custom height we added so that the new height can be re-calculated according to the content let maxHeight = 0; $element.each((index, element) => { maxHeight = Math.max(maxHeight, element.offsetHeight); }); if (0 < maxHeight) { $element.css({ height: maxHeight + 'px' }); } } } /** * WooCommerce prints the Purchase Note separated from the product name by a border and padding. * In Elementor's Order Summary design, the product name and purchase note are displayed un-separated. * To achieve this design, it is necessary to access the Product Name line before the Purchase Note line to adjust * its padding. Since this cannot be achieved in CSS, it is done in this method. * * @param {Object} $element * * @return {void} */ removePaddingBetweenPurchaseNote($element) { if ($element) { $element.each((index, element) => { jQuery(element).prev().children('td').addClass('product-purchase-note-is-below'); }); } } /** * `elementorPageId` and `elementorWidgetId` are added to the url in the `_wp_http_referer` input which is then * received when WooCommerce does its cart and checkout ajax requests e.g `update_order_review` and `update_cart`. * These query strings are extracted from the url and used in our `load_widget_before_wc_ajax` method. */ updateWpReferers() { const selectors = this.getSettings('selectors'), wpHttpRefererInputs = this.$element.find(selectors.wpHttpRefererInputs), url = new URL(document.location); url.searchParams.set('elementorPageId', elementorFrontend.config.post.id); url.searchParams.set('elementorWidgetId', this.getID()); wpHttpRefererInputs.attr('value', url); } } exports["default"] = Base; /***/ }), /***/ "../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js": /*!***************************************************************************!*\ !*** ../modules/woocommerce/assets/js/frontend/handlers/checkout-page.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _base = _interopRequireDefault(__webpack_require__(/*! ./base */ "../modules/woocommerce/assets/js/frontend/handlers/base.js")); class Checkout extends _base.default { getDefaultSettings() { const defaultSettings = super.getDefaultSettings(...arguments); return { selectors: { ...defaultSettings.selectors, container: '.elementor-widget-woocommerce-checkout-page', loginForm: '.e-woocommerce-login-anchor', loginSubmit: '.e-woocommerce-form-login-submit', loginSection: '.e-woocommerce-login-section', showCouponForm: '.e-show-coupon-form', couponSection: '.e-coupon-anchor', showLoginForm: '.e-show-login', applyCoupon: '.e-apply-coupon', checkoutForm: 'form.woocommerce-checkout', couponBox: '.e-coupon-box', address: 'address', wpHttpRefererInputs: '[name="_wp_http_referer"]' }, classes: defaultSettings.classes, ajaxUrl: elementorProFrontend.config.ajaxurl }; } getDefaultElements() { const selectors = this.getSettings('selectors'); return { ...super.getDefaultElements(...arguments), $container: this.$element.find(selectors.container), $loginForm: this.$element.find(selectors.loginForm), $showCouponForm: this.$element.find(selectors.showCouponForm), $couponSection: this.$element.find(selectors.couponSection), $showLoginForm: this.$element.find(selectors.showLoginForm), $applyCoupon: this.$element.find(selectors.applyCoupon), $loginSubmit: this.$element.find(selectors.loginSubmit), $couponBox: this.$element.find(selectors.couponBox), $checkoutForm: this.$element.find(selectors.checkoutForm), $loginSection: this.$element.find(selectors.loginSection), $address: this.$element.find(selectors.address) }; } bindEvents() { super.bindEvents(...arguments); this.elements.$showCouponForm.on('click', event => { event.preventDefault(); this.elements.$couponSection.slideToggle(); }); this.elements.$showLoginForm.on('click', event => { event.preventDefault(); this.elements.$loginForm.slideToggle(); }); this.elements.$applyCoupon.on('click', event => { event.preventDefault(); this.applyCoupon(); }); this.elements.$loginSubmit.on('click', event => { event.preventDefault(); this.loginUser(); }); elementorFrontend.elements.$body.on('updated_checkout', () => { this.applyPurchaseButtonHoverAnimation(); this.updateWpReferers(); }); } onInit() { super.onInit(...arguments); this.toggleStickyRightColumn(); this.updateWpReferers(); this.equalizeElementHeight(this.elements.$address); // Equalize
boxes height if (elementorFrontend.isEditMode()) { this.elements.$loginForm.show(); this.elements.$couponSection.show(); this.applyPurchaseButtonHoverAnimation(); } } onElementChange(propertyName) { if ('sticky_right_column' === propertyName) { this.toggleStickyRightColumn(); } } onDestroy() { super.onDestroy(...arguments); this.deactivateStickyRightColumn(); } applyPurchaseButtonHoverAnimation() { const purchaseButtonHoverAnimation = this.getElementSettings('purchase_button_hover_animation'); if (purchaseButtonHoverAnimation) { // This element is recaptured every time because the checkout markup can refresh jQuery('#place_order').addClass('elementor-animation-' + purchaseButtonHoverAnimation); } } applyCoupon() { // Wc_checkout_params is required to continue, ensure the object exists // eslint-disable-next-line camelcase if (!wc_checkout_params) { return; } this.startProcessing(this.elements.$couponBox); const data = { // eslint-disable-next-line camelcase security: wc_checkout_params.apply_coupon_nonce, coupon_code: this.elements.$couponBox.find('input[name="coupon_code"]').val() }; jQuery.ajax({ type: 'POST', // eslint-disable-next-line camelcase url: wc_checkout_params.wc_ajax_url.toString().replace('%%endpoint%%', 'apply_coupon'), context: this, data, success(code) { jQuery('.woocommerce-error, .woocommerce-message').remove(); this.elements.$couponBox.removeClass('processing').unblock(); if (code.includes('woocommerce-error') || code.includes('does not exist')) { jQuery('html, body').animate({ scrollTop: 0 }, 'fast'); } if (code) { this.elements.$checkoutForm.before(code); this.elements.$couponSection.slideUp(); elementorFrontend.elements.$body.trigger('applied_coupon_in_checkout', [data.coupon_code]); elementorFrontend.elements.$body.trigger('update_checkout', { update_shipping_method: false }); } }, dataType: 'html' }); } loginUser() { this.startProcessing(this.elements.$loginSection); const data = { action: 'elementor_woocommerce_checkout_login_user', username: this.elements.$loginSection.find('input[name="username"]').val(), password: this.elements.$loginSection.find('input[name="password"]').val(), nonce: this.elements.$loginSection.find('input[name="woocommerce-login-nonce"]').val(), remember: this.elements.$loginSection.find('input#rememberme').prop('checked') }; jQuery.ajax({ type: 'POST', url: this.getSettings('ajaxUrl'), context: this, data, success(code) { code = JSON.parse(code); this.elements.$loginSection.removeClass('processing').unblock(); const messages = jQuery('.woocommerce-error, .woocommerce-message'); messages.remove(); if (code.logged_in) { location.reload(); } else { this.elements.$checkoutForm.before(code.message); elementorFrontend.elements.$body.trigger('checkout_error', [code.message]); } } }); } startProcessing($form) { if ($form.is('.processing')) { return; } /** * .block() is from a jQuery blockUI plugin loaded by WooCommerce. This code is based on WooCommerce * core in order for the Checkout widget to behave the same as WooCommerce Checkout pages. */ $form.addClass('processing').block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); } } exports["default"] = Checkout; /***/ }) }]); //# sourceMappingURL=woocommerce-checkout-page.470384546c61ebcaa89d.bundle.js.map Top Account-Based Marketing Examples for 2025 – InfoNile
skip to Main Content

Top Account-Based Marketing Examples for 2025

Account-based marketing examples for B2B

Illustrations of account-based marketing

Their traditional demand gen approach relied on top-of-funnel marketing and broad outreach. For example, if a VP of Ops at a target account visits your pricing page and a second stakeholder starts a product chat the next day, that account automatically gets promoted into a new play. Rather than splitting resources between lead gen and ABM, the entire GTM org is structured to win and expand within a focused TAM. They’ve built always-on, cross-functional growth engines that embed account-based thinking across their entire revenue strategy. In 2026, a best-in-class ABM strategy is more than just a campaign – it’s become an entire system that covers all the essential parts of the funnel.

Illustrations of account-based marketing

Account-based marketing (ABM) is a B2B strategy where marketing and sales teams focus on a defined set of high-value target accounts, treating each as its own market. "We track account engagement throughout the funnel and see how they are progressing. This helps us allocate efforts on the right channels and understand how the strategy is performing." Research your target accounts to understand their pain points, objectives, and use cases for your solution. With over 20-years' senior marketing experience and a track record of delivering results, as an attentive expert strategic marketing and services company, we help you grow your brand, leads, sales and customers by doing the right things the right way. When identifying accounts avoid focusing on accounts heavily weighted on “walletshare”. Once you have mapped your list of customers and your biggest success stories, start to analyse the companies and people that have the highest social proximity to these customers.

If you had a business Illustrations of account-based marketing owner addressing your paint points in a video especially made for you, wouldn’t you be inclined to try their services? This increased their website traffic by 50% and their leads by 20%. Then, powered by Gumgum’s image-recognizing marketing technology, T-Man can more effectively get the word out about T-Mobile.

Events + Account-Based Marketing case study

The following case studies highlight how different companies have successfully implemented ABM to drive measurable results. ABM requires tight coordination between sales and marketing, as misalignment leads to wasted efforts, inconsistent messaging, and missed opportunities. AI will transform how companies identify and prioritize target accounts.

Tactic 2: Creating engagement with personalised events

So, an ABM framework requires close collaboration between marketing and sales, clear criteria for account qualification, and a well-defined go-to-market plan. You'll need a clear go-to-market plan to execute an ABM strategy effectively. To identify the right accounts to target, you'll need to develop a set of criteria for account qualification. You need to identify the accounts most likely to generate revenue for your business and prioritize them accordingly. To ensure success, aligning your marketing and sales goals and metrics is important.

BillingTree’s Creative Campaign

The key is having a central hub where your team can plan campaigns, track progress, and measure results. Use engagement data to identify customer needs and proactively offer solutions that align with their evolving goals. Tailoring your approach to their pain points, business goals, and preferred communication channels increases the likelihood of capturing their attention. With a 40% increase in hit rates and stronger pipeline quality, their CEO is actively tracking in-market accounts. Initially, Aprimo relied on firmographics, ICP data, and sales instincts to determine which accounts to pursue—without knowing which were actually in-market. Despite having a solid customer base, they operated as a startup.

Ready to reach decision makers at your target accounts? Now is as good a time as any to roll up your sleeves and put your newfound knowledge to work, so send that meeting invite to your sales team and start building your ABM strategy. A good analytics solution, along with data available through LinkedIn’s Campaign Manager, will help marketers identify strengths and weaknesses in their ABM strategy.

This level of personalization requires a deep understanding of the account's unique situation and a commitment to creating bespoke experiences that address their pain points. Account-based marketing offers a wealth of benefits that can transform your business's approach to sales and marketing. It enables teams to work together effectively, sharing insights, data, and strategies to create a cohesive, impactful customer journey.

Illustrations of account-based marketing

For most companies, giving so much resource to winning over just one contact in one account would be a crazy proposition. We've picked three classic ABM case studies, showing elements of each approach and demonstrating their different strengths and weaknesses. Account-based marketing (ABM) has transformed the way businesses approach winning high-value accounts.

Illustrations of account-based marketing

  • So, an ABM framework requires close collaboration between marketing and sales, clear criteria for account qualification, and a well-defined go-to-market plan.
  • Once initial interest was established, the sales team took over, conducting follow-ups to secure commitments and build relationships.
  • The entire company operates within a shared Workspace—so both sales and marketing teams are under one virtual roof, making collaboration frictionless.
  • Utilize persona templates and journey maps to illustrate the roles of decision-makers, their pain points, and the engagement pathways.

Check out these account-based marketing examples that highlight winning strategies for high-value accounts Unlock the secrets to the sales and marketing strategies that will help you thrive as a contract manufacturer. His career highlights include award-winning campaigns for Strongbow and launching the first loyalty app for M&S. Additionally, the campaign solidified Orbit Media’s reputation as an industry leader, as evidenced by glowing feedback and increased enquiries from prospective clients.

In the third phase (the first two involved planning, documentation, and gaining stakeholder buy-in), Caroo built a series of unique microsites that would be used to target specific verticals and product use cases. Like Dialpad, DocuSign leveraged Demandbase’s suite of account intelligence tools to design a powerful ABM strategy and attract leads that met highly specific criteria. DocuSign built its lead generation strategy to suit an account-based marketing approach.

Stanley Deepak is an accomplished sales and marketing professional with 15+ years of experience. If you can give something to your clients before approaching them as a salesperson, you can win their trust more easily. The sales executives at O2 then followed up with individual clients for face-to-face meetings. The company took the pain of creating personalized reports for each of its target companies.

Discussion

This Post Has 0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top
Search