var tribe_dropdowns = window.tribe_dropdowns || {}; ( function( $, obj, _ ) { 'use strict'; obj.selector = { dropdown: '.tribe-dropdown', created: '.tribe-dropdown-created', searchField: '.select2-search__field', }; // Setup a Dependent $.fn.tribe_dropdowns = function() { obj.dropdown( this, {} ); return this; }; obj.freefrom_create_search_choice = function( params ) { if ( 'string' !== typeof params.term ) { return null; } var term = params.term.trim(); if ( '' === term ) { return null; } var args = this.options.options; var $select = args.$select; if ( term.match( args.regexToken ) && ( ! $select.is( '[data-int]' ) || ( $select.is( '[data-int]' ) && term.match( /\d+/ ) ) ) ) { var choice = { id: term, text: term, new: true }; if ( $select.is( '[data-create-choice-template]' ) ) { choice.text = _.template( $select.data( 'createChoiceTemplate' ) )( { term: term } ); } return choice; } return null; }; /** * Better Search ID for Select2, compatible with WordPress ID from WP_Query * * @param {object|string} e Searched object or the actual ID * @return {string} ID of the object */ obj.search_id = function( e ) { var id = undefined; if ( 'undefined' !== typeof e.id ) { id = e.id; } else if ( 'undefined' !== typeof e.ID ) { id = e.ID; } else if ( 'undefined' !== typeof e.value ) { id = e.value; } return undefined === e ? undefined : id; }; /** * Better way of matching results * * @param {string} term Which term we are searching for * @param {string} text Search here * @return {boolean} */ obj.matcher = function( params, data ) { // If there are no search terms, return all of the data if ( 'string' !== typeof params.term || params.term.trim() === '') { return data; } // Do not display the item if there is no 'text' property if ( typeof data.text === 'undefined' ) { return null; } var term = params.term.trim(); var text = data.text; var $select = $( data.element ).closest( 'select' ); var args = $select.data( 'dropdown' ); var result = text.toUpperCase().indexOf( term.toUpperCase() ) !== -1; if ( ! result && 'undefined' !== typeof args.tags ){ var possible = _.where( args.tags, { text: text } ); if ( args.tags.length > 0 && _.isObject( possible ) ){ var test_value = obj.search_id( possible[0] ); result = test_value.toUpperCase().indexOf( term.toUpperCase() ) !== -1; } } return result; }; /** * If the element used as the basis of a dropdown specifies one or more numeric/text * identifiers in its val attribute, then use those to preselect the appropriate options. * * @param {object} $select * @param {function} make_selection */ obj.init_selection = function( $select, make_selection ) { var isMultiple = $select.is( '[multiple]' ); var options = $select.data( 'dropdown' ); var currentValues = $select.val().split( options.regexSplit ); var selectedItems = []; $( currentValues ).each( function( index, value ) { // eslint-disable-line no-unused-vars var searchFor = { id: this, text: this }; var data = options.ajax ? $select.data( 'options' ) : options.data; var locatedItem = find_item( searchFor, data ); if ( locatedItem && locatedItem.selected ) { selectedItems.push( locatedItem ); } } ); if ( selectedItems.length && isMultiple ) { make_selection( selectedItems ); } else if ( selectedItems.length ) { make_selection( selectedItems[ 0 ] ); } else { make_selection( false ); return; } }; /** * Searches array 'haystack' for objects that match 'description'. * * The 'description' object should take the form { id: number, text: string }. The first * object within the haystack that matches one of those two properties will be returned. * * If objects contain an array named 'children', then that array will also be searched. * * @param {Object} description * @param {Array} haystack * * @return {Object|boolean} */ function find_item( description, haystack ) { if ( ! _.isArray( haystack ) ) { return false; } for ( var index in haystack ) { var possible_match = haystack[ index ]; if ( possible_match.hasOwnProperty( 'id' ) && possible_match.id == description.id ) { // eslint-disable-line no-prototype-builtins,eqeqeq,max-len return possible_match; } if ( possible_match.hasOwnProperty( 'text' ) && possible_match.text == description.text ) { // eslint-disable-line no-prototype-builtins,eqeqeq,max-len return possible_match; } if ( possible_match.hasOwnProperty( 'children' ) && _.isArray( possible_match.children ) ) { // eslint-disable-line no-prototype-builtins,max-len var subsearch = find_item( description, possible_match.children ); if ( subsearch ) { return subsearch; } } } return false; } obj.getSelectClasses = function( $select ) { var classesToRemove = [ 'select2-hidden-accessible', 'hide-before-select2-init', ]; var originalClasses = $select.attr( 'class' ).split( /\s+/ ); return _.difference( originalClasses, classesToRemove ); }; obj.element = function( field, args ) { var $select = $( field ); var args = $.extend( {}, args ); // eslint-disable-line no-redeclare var carryOverData = [ // eslint-disable-line no-unused-vars 'depends', 'condition', 'conditionNot', 'condition-not', 'conditionNotEmpty', 'condition-not-empty', 'conditionEmpty', 'condition-empty', 'conditionIsNumeric', 'condition-is-numeric', 'conditionIsNotNumeric', 'condition-is-not-numeric', 'conditionChecked', 'condition-is-checked', ]; var $container; // Add a class for dropdown created $select.addClass( obj.selector.created.className() ); // args.debug = true; // For Reference we save the jQuery element as an Arg. args.$select = $select; // Auto define the Width of the Select2. args.dropdownAutoWidth = true; args.width = 'resolve'; // CSS for the container args.containerCss = {}; // Only apply visibility when it's a Visible Select2. if ( $select.is( ':visible' ) ) { args.containerCss.display = 'inline-block'; args.containerCss.position = 'relative'; } // CSS for the dropdown args.dropdownCss = {}; args.dropdownCss.width = 'auto'; // When we have this we replace the default with what's in the param. if ( $select.is( '[data-dropdown-css-width]' ) ) { args.dropdownCss.width = $select.data( 'dropdown-css-width' ); if ( ! args.dropdownCss.width || 'false' === args.dropdownCss.width ) { delete args.dropdownCss.width; delete args.containerCss; } } // By default we allow The field to be cleared args.allowClear = true; if ( $select.is( '[data-prevent-clear]' ) ) { args.allowClear = false; } // Pass the "Searching..." placeholder if specified if ( $select.is( '[data-searching-placeholder]' ) ) { args.formatSearching = $select.data( 'searching-placeholder' ); } // If we are dealing with a Input Hidden we need to set the Data for it to work if ( ! $select.is( '[data-placeholder]' ) && $select.is( '[placeholder]' ) ) { args.placeholder = $select.attr( 'placeholder' ); } // If we are dealing with a Input Hidden we need to set the Data for it to work. if ( $select.is( '[data-options]' ) ) { args.data = $select.data( 'options' ); } // With less then 10 args we wouldn't show the search. args.minimumResultsForSearch = 10; // Prevents the Search box to show if ( $select.is( '[data-hide-search]' ) ) { args.minimumResultsForSearch = Infinity; } // Makes sure search shows up. if ( $select.is( '[data-force-search]' ) ) { delete args.minimumResultsForSearch; } // Allows freeform entry if ( $select.is( '[data-freeform]' ) ) { args.createTag = obj.freefrom_create_search_choice; args.tags = true; $select.data( 'tags', true ); } if ( $select.is( '[multiple]' ) ) { args.multiple = true; // Set the max select items, if defined if ( $select.is( '[data-maximum-selection-size]' ) ) { args.maximumSelectionSize = $select.data( 'maximum-selection-size' ); } // If you don't have separator, add one (comma) if ( ! $select.is( 'data-separator' ) ) { $select.data( 'separator', ',' ); } if ( ! _.isArray( $select.data( 'separator' ) ) ) { args.tokenSeparators = [ $select.data( 'separator' ) ]; } else { args.tokenSeparators = $select.data( 'separator' ); } args.separator = $select.data( 'separator' ); // Define the regular Exp based on args.regexSeparatorElements = [ '^(' ]; args.regexSplitElements = [ '(?:' ]; $.each( args.tokenSeparators, function ( i, token ) { args.regexSeparatorElements.push( '[^' + token + ']+' ); args.regexSplitElements.push( '[' + token + ']' ); } ); args.regexSeparatorElements.push( ')$' ); args.regexSplitElements.push( ')' ); args.regexSeparatorString = args.regexSeparatorElements.join( '' ); args.regexSplitString = args.regexSplitElements.join( '' ); args.regexToken = new RegExp( args.regexSeparatorString, 'ig' ); args.regexSplit = new RegExp( args.regexSplitString, 'ig' ); } // Select also allows Tags, so we go with that too if ( $select.is( '[data-tags]' ) ) { args.tags = $select.data( 'tags' ); args.createSearchChoice = function( term, data ) { // eslint-disable-line no-unused-vars if ( term.match( args.regexToken ) ) { return { id: term, text: term }; } }; if ( 0 === args.tags.length ) { args.formatNoMatches = function() { return $select.attr( 'placeholder' ); }; } } // When we have a source, we do an AJAX call if ( $select.is( '[data-source]' ) ) { var source = $select.data( 'source' ); // For AJAX we reset the data args.data = { results: [] }; // Format for Parents breadcrumbs args.formatResult = function ( item, container, query ) { // eslint-disable-line no-unused-vars,max-len if ( 'undefined' !== typeof item.breadcrumbs ) { return $.merge( item.breadcrumbs, [ item.text ] ).join( ' » ' ); } return item.text; }; // instead of writing the function to execute the request we use Select2's convenient helper. args.ajax = { dataType: 'json', type: 'POST', url: obj.ajaxurl(), // parse the results into the format expected by Select2. processResults: function ( response, page, query ) { // eslint-disable-line no-unused-vars if ( ! $.isPlainObject( response ) || 'undefined' === typeof response.success ) { console.error( 'We received a malformed Object, could not complete the Select2 Search.' ); // eslint-disable-line max-len return { results: [] }; } if ( ! $.isPlainObject( response.data ) || 'undefined' === typeof response.data.results ) { console.error( 'We received a malformed results array, could not complete the Select2 Search.' ); // eslint-disable-line max-len return { results: [] }; } if ( ! response.success ) { if ( 'string' === $.type( response.data.message ) ) { console.error( response.data.message ); } else { console.error( 'The Select2 search failed in some way... Verify the source.' ); } return { results: [] }; } return response.data; }, }; // By default only send the source args.ajax.data = function( search, page ) { return { action: 'tribe_dropdown', source: source, search: search, page: page, args: $select.data( 'source-args' ), }; }; } // Attach dropdown to container in DOM. if ( $select.is( '[data-attach-container]' ) ) { // If multiple, attach container without search. if ( $select.is( '[multiple]' ) ) { $.fn.select2.amd.define( 'AttachedDropdownAdapter', [ 'select2/utils', 'select2/dropdown', 'select2/dropdown/attachContainer', ], function( utils, dropdown, attachContainer ) { return utils.Decorate( dropdown, attachContainer ); } ); args.dropdownAdapter = $.fn.select2.amd.require( 'AttachedDropdownAdapter' ); // If not multiple, attach container with search. } else { $.fn.select2.amd.define( 'AttachedWithSearchDropdownAdapter', [ 'select2/utils', 'select2/dropdown', 'select2/dropdown/search', 'select2/dropdown/minimumResultsForSearch', 'select2/dropdown/attachContainer', ], function( utils, dropdown, search, minimumResultsForSearch, attachContainer ) { var adapter = utils.Decorate( dropdown, attachContainer ); adapter = utils.Decorate( adapter, search ); adapter = utils.Decorate( adapter, minimumResultsForSearch ); return adapter; } ); args.dropdownAdapter = $.fn.select2.amd.require( 'AttachedWithSearchDropdownAdapter' ); } } // Save data on Dropdown $select.data( 'dropdown', args ); $container = $select.select2TEC( args ); // Propagating original input classes to the select2 container. $container.data( 'select2' ).$container.addClass( obj.getSelectClasses( $select ).join( ' ' ) ); // Propagating original input classes to the select2 container. $container.data( 'select2' ).$container.removeClass( 'hide-before-select2-init' ); $container.on( 'select2:open', obj.action_select2_open ); /** * @todo @bordoni Investigate how and if we should be doing this. * if ( carryOverData.length > 0 ) { carryOverData.map( function( dataKey ) { var attr = 'data-' + dataKey; var val = $select.attr( attr ); if ( ! val ) { return; } this.attr( attr, val ); }, $container ); } */ }; obj.ajaxurl = function() { if ( 'undefined' !== typeof window.ajaxurl ) { return window.ajaxurl; } if ( 'undefined' !== typeof TEC && 'undefined' !== typeof TEC.ajaxurl ) { return TEC.ajaxurl; } console.error( 'Dropdowns framework cannot properly do an AJAX request without the WordPress `ajaxurl` variable setup.' ); // eslint-disable-line max-len }; obj.action_select2_open = function( event ) { // eslint-disable-line no-unused-vars var $select = $( this ); var select2Data = $select.data( 'select2' ); var $search = select2Data.$dropdown.find( obj.selector.searchField ); // eslint-disable-line es5/no-es6-methods,max-len select2Data.$dropdown.addClass( obj.selector.dropdown.className() ); // If we have a placeholder for search, apply it! if ( $select.is( '[data-search-placeholder]' ) ) { $search.attr( 'placeholder', $select.data( 'searchPlaceholder' ) ); } }; /** * Configure the Drop Down Fields * * @param {jQuery} $fields All the fields from the page * @param {array} args Allow extending the arguments * * @return {jQuery} Affected fields */ obj.dropdown = function( $fields, args ) { var $elements = $fields.not( '.select2-offscreen, .select2-container, ' + obj.selector.created.className() ); // eslint-disable-line max-len if ( 0 === $elements.length ) { return $elements; } // Default args to avoid Undefined if ( ! args ) { args = {}; } $elements .each( function( index, element ) { // Apply element to all given items and pass args obj.element( element, args ); } ); // return to be able to chain jQuery calls return $elements; }; $( function() { $( obj.selector.dropdown ).tribe_dropdowns(); } ); // Addresses some problems with Select2 inputs not being initialized when using a browser's "Back" button. $( window ).on( 'unload', function() { $( obj.selector.dropdown ).tribe_dropdowns(); }); } )( jQuery, tribe_dropdowns, window.underscore || window._ ); /*! elementor-pro - v3.5.1 - 10-11-2021 */ .elementor-cta,.elementor-widget-call-to-action .elementor-widget-container{overflow:hidden}.elementor-cta{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transition:.5s;-o-transition:.5s;transition:.5s}.elementor-cta--skin-classic .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--skin-classic .elementor-cta__bg-wrapper{position:relative;min-height:200px;width:100%}.elementor-cta--skin-classic .elementor-cta__content{-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%;background-color:#f7f7f7}.elementor-cta--skin-classic .elementor-cta__content-item,.elementor-cta--skin-classic .elementor-cta__content-item .elementor-icon{color:#55595c;border-color:#55595c;fill:#55595c}.elementor-cta--skin-classic .elementor-cta__button.elementor-button{color:#55595c;border-color:#55595c}.elementor-cta--skin-cover .elementor-cta{display:block}.elementor-cta--skin-cover .elementor-cta__bg-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s;width:100%}.elementor-cta--skin-cover .elementor-cta__content{min-height:280px}.elementor-cta--skin-cover .elementor-cta__button.elementor-button,.elementor-cta--skin-cover .elementor-cta__content-item,.elementor-cta--skin-cover .elementor-cta__content-item .elementor-icon{color:#fff;border-color:#fff}.elementor-cta--layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--layout-image-left .elementor-cta,.elementor-cta--layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--layout-image-left .elementor-cta__content,.elementor-cta--layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.elementor-cta__bg,.elementor-cta__bg-overlay{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transition:all .4s;-o-transition:all .4s;transition:all .4s}.elementor-cta__bg-wrapper{z-index:1;overflow:hidden}.elementor-cta__bg{-webkit-background-size:cover;background-size:cover;background-position:50%;z-index:1}.elementor-cta__bg-overlay{z-index:2}.elementor-cta__button.elementor-button{cursor:pointer;-ms-flex-item-align:center;align-self:center;margin-left:auto;margin-right:auto;border:2px solid #fff;background:transparent}.elementor-cta__button.elementor-button:hover{background:transparent;text-decoration:none}.elementor-cta__title{font-size:23px}.elementor-cta__content{z-index:1;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;padding:35px;width:100%}.elementor-cta__content,.elementor-cta__content-item{position:relative;-webkit-transition:.5s;-o-transition:.5s;transition:.5s;color:#fff}.elementor-cta__content-item{width:100%;margin:0}.elementor-cta__content-item:not(:last-child){margin-bottom:15px}.elementor-cta__content-item .elementor-icon{color:#fff}.elementor-cta--valign-top .elementor-cta__content{-ms-flex-line-pack:start;align-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.elementor-cta--valign-middle .elementor-cta__content{-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.elementor-cta--valign-bottom .elementor-cta__content{-ms-flex-line-pack:end;align-content:flex-end;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.elementor-cta:hover .elementor-cta__bg-overlay{background-color:rgba(0,0,0,.3)}@media (max-device-width:1024px){.elementor-cta{cursor:pointer}}@media (min-width:-1px){.elementor-cta--widescreen-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--widescreen-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--widescreen-layout-image-left .elementor-cta,.elementor-cta--widescreen-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--widescreen-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--widescreen-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--widescreen-layout-image-left .elementor-cta__content,.elementor-cta--widescreen-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--widescreen-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--widescreen-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--laptop-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--laptop-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--laptop-layout-image-left .elementor-cta,.elementor-cta--laptop-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--laptop-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--laptop-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--laptop-layout-image-left .elementor-cta__content,.elementor-cta--laptop-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--laptop-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--laptop-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--tablet_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta,.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet_extra-layout-image-left .elementor-cta__content,.elementor-cta--tablet_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--tablet_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:1024px){.elementor-cta--tablet-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--tablet-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--tablet-layout-image-left .elementor-cta,.elementor-cta--tablet-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--tablet-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--tablet-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--tablet-layout-image-left .elementor-cta__content,.elementor-cta--tablet-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--tablet-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--tablet-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:-1px){.elementor-cta--mobile_extra-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile_extra-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta,.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile_extra-layout-image-left .elementor-cta__content,.elementor-cta--mobile_extra-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile_extra-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--mobile_extra-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}@media (max-width:767px){.elementor-cta--mobile-layout-image-above .elementor-cta{-ms-flex-wrap:wrap;flex-wrap:wrap}.elementor-cta--mobile-layout-image-above .elementor-cta__bg-wrapper{width:100%}.elementor-cta--mobile-layout-image-left .elementor-cta,.elementor-cta--mobile-layout-image-right .elementor-cta{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.elementor-cta--mobile-layout-image-left .elementor-cta__bg-wrapper,.elementor-cta--mobile-layout-image-right .elementor-cta__bg-wrapper{width:auto;min-width:50%}.elementor-cta--mobile-layout-image-left .elementor-cta__content,.elementor-cta--mobile-layout-image-right .elementor-cta__content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.elementor-cta--mobile-layout-image-left .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.elementor-cta--mobile-layout-image-right .elementor-cta{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}}.elementor-ribbon{position:absolute;z-index:1;top:0;left:0;right:auto;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);width:150px;overflow:hidden;height:150px}.elementor-ribbon-inner{text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(0) translateX(35px) rotate(-45deg);margin-top:35px;font-size:13px;line-height:2;font-weight:800;text-transform:uppercase;background:#000;color:#fff}.elementor-ribbon.elementor-ribbon-left{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);left:0;right:auto}.elementor-ribbon.elementor-ribbon-right{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:auto;right:0} ai sales bot 4 - premier mills

ai sales bot 4

Attention Sales Reps: AI is Coming For Your Job For Real.

AI startup Rep ai raises $7.5M to launch ‘digital twin’ sales representatives

ai sales bot

Meet your audience where they are and use a chatbot to carry out your marketing strategy at scale. The ability to communicate with the technology makes the prospects of conversational chatbots exciting to many. Online shoppers are accustomed to AI tracking their browsing and shopping behavior in the background to make product recommendations intended to improve the customer experience. Similarly, AI tools for content creation generate high-quality, SEO-friendly content based on user preferences and search engine algorithms. These innovations ensure a more seamless, productive, and beneficial marketing strategy. AI for marketing strategy is setting new benchmarks for customer interactions.

Salesforce launches autonomous customer service bots – Axios

Salesforce launches autonomous customer service bots.

Posted: Thu, 12 Sep 2024 07:00:00 GMT [source]

Setting up and maintaining chatbot solutions often requires technical expertise, including knowledge of programming languages, natural language processing (NLP), and machine learning (ML). This can be a barrier for businesses without in-house technical resources or budget to hire outside experts. In some industries, such as healthcare and finance, chatbots must comply with strict regulatory requirements. This can add additional complexity and cost to the set up and maintenance of chatbot solutions. Nearly 60% of consumers feel wait times are the most frustrating part of the customer service experience. AI chatbots are available with the click of a button 24/7 to assist customers as they shop or to address routine questions or issues.

This website is using a security service to protect itself from online attacks. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data. Optimove uses AI to drive customer retention and loyalty through personalized marketing campaigns. It analyzes customer behavior to predict future actions and optimize marketing efforts. Headlime uses AI to create compelling landing pages and marketing copy.

Zoho CRM: Best for Broad AI Functionality

Many Chinese cloud vendors have relied on AI chatbot services to boost sales, after China saw a wave of investment in large language models in response to the hit debut of US-based OpenAI’s ChatGPT in late 2022. For most businesses I’ve interacted with, “using AI” means building a chatbot, co-pilot, AI agent, or AI assistant. However, as the initial excitement about these solutions wanes, organizations are realizing the key challenges of building systems around LLMs. From automating tasks to providing deep customer insights, these tools empower businesses to optimize their marketing strategies and achieve better results. Salesforce has been making the push to make better use of its users’ customer data for years. First, it launched a customer data platform named Customer 360 Audiences in 2020, rebranding it as Salesforce CDP in 2021.

ai sales bot

Bots (not defined) will be treated as ‘users’ if the bot’s functions include interacting with user-generated content and if the bot is not operated by, or for, the service provider. Service providers’ duties under the OSB will extend to user-generated content created, uploaded or shared by a non-human, third party ‘bot’ or other automated software tool. Internet bots that perform functions in relation to websites were the most well-known early bots. Still in use today are ‘web crawlers’ or ‘spiders’, that automatically visit and ‘crawl’ websites, indexing their webpages and/or documents for search engine providers, like the well-known Googlebot. ‘Scraper’ bots ‘scrape’ and download website content for other purposes.

Currently, it is working with over 25 medium-sized D2C brands globally, including The Man Company, Man Matters, Kapiva etc. Its motto is “My AI Friend,” and the vendor claims that it can offer dialogue geared for emotional support. To that end, it can engage in a wide variety of topics or even help you learn new things. To better engage, the platform learns your texting style and mimics it. Of course, this means that the longer you interface with the app, the more accurately Replika can mimic your style. Discovery Botis available now to early access customers and will be generally available in the coming quarters.

More than 7,000 email wires go to journalists from more than 2,400 media outlets around the globe. The first will be more sales and marketing oriented, containing documents from Medium and YouTube. The second collection focuses more on support use cases and consists of documentation and Stack Overflow documents. A chatbot finds relevant information by comparing the vector embedding of questions with document embeddings. A text embedding is a machine-readable representation of text in the form of a vector or, more plainly, a list of floats. In this example, we will use the ada-002 model provided by OpenAI to embed documents.

Can AI be used for customer service?

Ada stands out for its sophisticated branding features that offer a wide range of customization options to match the chatbot’s appearance and tone with a business’s distinct identity. The Drift AI chatbot is designed to handle different types of conversations, including lead nurturing, customer support, and sales assistance. It can engage with website visitors and provide relevant information or route inquiries to the appropriate human representative. Perplexity AI is a generative AI chatbot, search, and answer engine that allows users to express queries in natural language​​ and provides answers based on information gathered from various sources on the web.

Sprout’s Bot Builder provides a variety of pre-built bot templates that make the process even easier. And like most bots, we provide our customers with the option to speak directly to one of the lovely humans on our support team. Chatbots are common in the healthcare space and many brands use them to help patients and provide telemedicine services. Babylon Health uses AI-powered bot technology with Symptom Checker, which is available via the app and their website. Removing those extra steps on the customer’s end reduces friction in their journey. Since bots provide almost all of the necessary details about a service or product, they can hyper-personalize the chat experience.

It also helps users to seamlessly manage their mobile app development process, from design to launch. With its user-friendly interface, users can create an app in minutes and are able to customize, monitor and manage it at all times. Most chatbots can only take in fixed predefined responses and are unable to answer questions that have not already been programmed.

While human agents might be inaccessible or busy, chatbots step in, providing immediate assistance and increasing customer satisfaction. They collect user data, initiate basic customer service processes, and automate repetitive tasks, freeing up time for sales teams to concentrate on closing deals. Their role in enhancing customer service and their potential to nurture leads throughout the sales journey is invaluable. Powered by LLMs and machine learning capabilities, watsonx Assistant understands natural language and provides customers with fast and accurate answers and actions to queries. One such solution is a conversational automation agent, often referred to as a chatbot.

What’s less clear, though, is what impact — if any — those assistants have actually had on sales. Although some investors are wary of backing AI SDR startups because it is hard to distinguish these companies’ offerings from each other, 11x’s Series B shows that other VCs are not afraid to make a larger bet on one of these startups. The recent deal follows the company’s $24 million Series A, which was led by Benchmark with the participation of other investors including 20VC, Project A, Lux Capital, and SV Angel. While 11x.ai announced its Series A round earlier this month, we’ve learned that the deal closed earlier in 2024. The company was valued at $90 million during its Series A, according to one source.

ai sales bot

Organizations in the Microsoft ecosystem may find Bing Chat Enterprise beneficial, as it works better on the Edge browser. ChatGPT does not cite its data sources, but it is one of the most versatile and creative AI chatbots. Google Bard cites data sources and provides up-to-date information, but its response time is sometimes slow.

Brands

Developed by Microsoft, Bing AI is a suite of features that power the Bing search engine and other Microsoft products and services. Both ChatGPT and Bing Chat are powered by GPT-4, meaning they produce similar results, but Bing Chat also gives you access to GPT-4 and DALL-E 3, OpenAI’s image generator, for free. Additionally, while ChatGPT is an isolated interface, Bing Chat can be integrated into your browser, providing a more convenient user experience.

  • Having its own chatbot platform allowed live agents to respond to more complex conversations, improving response times and agent efficiency.
  • Sometimes, ‘bot’ just refers to an online tool that provides output for users based on input, such as ‘legal bots’ for generating contracts.
  • As customers continue to spend cautiously in the wake of post-COVID inflation, competition for their dollars is rising.
  • And if they fail at this, she says, there should be significant regulatory penalties.
  • Whether you’re using chatbots to brainstorm marketing ideas or write blog posts, keep an eye out for factual inaccuracies, biases in data, and plagiarism and copyright infringement.
  • At the same time it’s prompting questions over how much longer humans will be involved in some business admin practices.

Note that the EU AI Act will not apply to the UK, so it is only relevant to UK businesses that have EU operations or customers. Nonetheless, the UK government’s white paper on AI is due in 2022, so we will find out soon about any planned UK AI-related legislation. For example, employees can ask the AI assistant about optimal title lengths that drive category sales, receiving back the ideal length of characters for the category on that merchant’s website. “B2B marketers must be wary of ingesting all available conversational data elements without a clearly defined strategy for how that data will be captured, processed, stored, unified and maintained,” she said. The realism of what some are calling AI digital employees comes from the evolution of business-to-business conversation automation technology over the past five years or so.

Chinese LLM developers have focused on charging businesses as a way to monetize their investments in LLMs. Baidu’s Ernie Lite and Ernie Speed were released in March and until Tuesday corporate customers paid to use them. A price war in China’s cloud computing space has been ongoing for the past few months, with Alibaba and Tencent recently lowering prices of their cloud computing services.

I chose ChatSonic because of its Sonic Editor, which is similar to Google Docs and facilitates editing and collaboration. It also provides third-party app integration, which improves its use and adaptability. Chatsonic offers different solutions to meet different demands and optimize workflows, including more than 100 AI templates. Perplexity AI’s Copilot feature can guide users through the search process with interactive multiple searches and summarized results. However, it’s limited to five searches every four hours for free plan users and up to 300 searches for paid users.

Think carefully about the goals you want to achieve, how you can foster growth with AI, and what features will best empower your employees. Additionally, remember not to overlook the importance of compliance when implementing data-driven tools. With Einstein Copilot Studio, companies can build their own apps, create comprehensive prompts, and even tweak their LLM models. Pipedrive’s AI technology can also adapt workflow suggestions to each employee based on their performance metrics. With Pipedrive, you’ll have a comprehensive platform to view and respond to CX trends in seconds and monitor opportunities.

Audio /voice segment to register at the highest CAGR during the forecast period. Audio/voice bot, also known as a voice assistant or voicebot, is a computer program designed to simulate a conversation with human users through spoken language instead of text. Audio/voice bots use speech recognition and NLP techniques to understand user input and provide appropriate responses conversationally.

ai sales bot

Easily reply, hide, delete, tag, or share comments as needed — all from the Hootsuite dashboard. Discover pro tips, free tools, and inspiring examples to help you boost interaction with your posts. Dazzle your audience and grow fast with a bulk scheduler, a drag-and-drop content calendar, and graphs that show you the best time to post. Set up social listening for your most important keywords, hashtags, and mentions. Keep an ear out so you can engage in exciting convos and protect your brand’s reputation. Never miss a chance to clear up negativity or leave a positive impression in the comments section.

As such, it is well-funded and is continuously improved by some of the best developers in the AI industry. It’s a major plus for this app that it’s developed and supported by Google. Admittedly, this app had some difficulties when it was first rolled out. Apparently scrambling to keep up with the phenomenal success of OpenAI’s ChatGPT, Google didn’t iron out all the bugs first. However, Gemini is being actively developed and will benefit greatly from Google’s deep resources and legions of top AI developers.

He said in a statement that the company is “committed” to making employee jobs easier” as a way to “better serve our guests” and was open to feedback about the bot. Like many of its peers in the retail industry, the company went with something simple and accessible — a ChatGPT-esque bot. But instead of focusing it on customer support, Target focused it on employees. Today’s AI CRM solutions can empower companies to overcome various challenges, from managing complex interactions to forecasting future demand. The key to success is choosing an AI CRM tool that aligns with your company’s requirements.

AI chatbots are powered by large language models (LLMs), which are trained on vast amounts of text data to understand and generate human-like language. Their ability to pre-train on large datasets, understand context, and generate coherent, complex responses makes LLMs versatile for all kinds of language-related tasks. Examples of LLMs include OpenAI’s Generative Pretrained Transformer (GPT) or Google’s Language Model for Dialogue Applications (LaMDA). The best AI chatbot for customer service will depend on the nature of your business. Various AI chatbots are available for customer service, and some have been built with specific industries or use cases in mind.

Hootsuite Analytics tracks all your key social media metrics and makes sense of your true social ROI, including as it applies to customer service. Measure organic and paid campaigns, comments, messages, engagement, and much more. Customize beautiful looking reports in no time, automate delivery via email, and sit back with the juicy data (and matcha latte) you deserve.

I recently wrote about how AI visibility optimization (AIVO) will become a cornerstone in sellers’ marketing efforts because this will be one of the ways to influence bots. The final steps involve more complex criteria and judgment, and because of this, B2B is going to become a whole new game. Once you have your RFP responses, you can accelerate the evaluation of vendor proposals in a consistent and standardized way. You can also train your bots to make the choices for you and negotiate for you.

It also has a CSAT rating, a method that is used to identify how satisfied customers are with a company’s products or services, making it trustworthy. Also, it can connect with other apps using a third-party service such as Zapier, making it a versatile chatbot. In addition, Kommunicate can manage customer conversations through bots, live chat, Facebook Messenger, Whatsapp, and Line.

For instance, a US court recently ruled that business-social media company LinkedIn could not prevent a competitor scraping LinkedIn users’ publicly-available data. Appy Pie also provides third-party integrations with services such as Zoho CRM, Zendesk, Slack and Facebook Messenger. The chatbot builder also comes with an analytics dashboard for bot performance.

We evaluated various capabilities offered by each AI software, including multi-language support, the ability to accept spoken word input, the programmability of the solution, the kind of users it is built for, and customization options. AI chatbots require a number of advanced features to accomplish their many tasks, ranging from context understanding to personalization. The greatest strong point for the Bing Chat tool is that it’s produced by Microsoft, arguably the leader in AI today. The company’s deep resources and dominant technical expertise in AI software should support this chat app very well in the years ahead.

Users can also access it via the Windows Copilot Sidebar, making this app easily accessible. Microsoft is incorporating AI across its product portfolio, so this chat app will likely show up in a number of applications. I have used ChatGPT for various tasks, from summarizing long articles for research purposes to brainstorming business plans and customer pain points.

Subsequently, as the bot has all the information about the buying history, it automates all the post-buying support such as order tracking, returns, complaints etc. LimeChat’s bot starts by engaging the users when they visit a client’s website to capture the buying intent. Nikhil adds that LimeChat’s Level 3 bot can give a 53 percent higher engagement rate than a Level 2 bot. Tapping into this lucrative market with a focus on D2C brands are IIT alumni Aniket Bajpai and Nikhil Gupta. OpenAI Playground was designed by the same generative AI company that created ChatGPT (see above).

AI-Powered Budy.bot Raises $4.2 Mn to Simplify Sales and Marketing Chaos for Companies – AIM

AI-Powered Budy.bot Raises $4.2 Mn to Simplify Sales and Marketing Chaos for Companies.

Posted: Thu, 17 Oct 2024 07:00:00 GMT [source]

As more RFP responses are crafted by AI, bots will inevitably start writing the questions too. Before long, other bots may be scoring proposals and recommending winners, leaving humans to just do a brief double check. “The AI RFP is a baby step toward replacing the RFP with something better,” says Peter Bonney, CEO of Vendorful, which recently started selling a tool similar to that used inside Twilio. As excitement and concerns swirl about smart experimentation with generative AI, multiple consumer goods companies are investing in AI chatbots to increase efficiencies across their teams.

Leave a Comment

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