Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Anchor
top
top

...

Section


Column
width80%

Overview

Segmentation is the process of creating groups of records (segments) based on common business characteristics.  Segments can be created by using CRMQL (CRM Query Language), a business query language developed by CRM.COM.  They are used for statistical calculations and as identification criteria by business processes, for example, to group newly activated subscriptions and send them a welcome message.

It is also possible to create reusable segment criteria templates (to speed up the process)

Segment Criteria Templates

Info
iconfalse

Foundation / Segmentation /Manage Segment Criteria Templates

Segment criteria templates can be used to create new or modify existing segments, making it possible to edit and reuse queries instead of writing them from scratch. Each segment criteria template is specific to an area in the system referred to as 'Segmented Area' It actually determines the type of information that will be grouped in the segment and the filters or the queries that can be defined each segment. Once the segmented area is selected the query used to identify the records included in the group is written using the CRMQL.

Save the templateand use it when creating segments to speed up the process.


Segments

Info

Foundation / Segmentation / Manage Segments

Segments group records based on common characteristics by using conditions defined in CRMQL (CRM.COM Query Language).   

By using the Included in Segments and Excluded Segments attributes found under the segments tab of some modules, the system can effectively select which records should be affected by (or excluded from) an action.  

Segments are also used in Pricing Strategy and Additive Discounts to  and Additive Discounts to determine whether plans and discounts can be applied to the selected group of records, and in processes to apply actions on specific groups of records in one flow.

Creating Segments

 


Specify the criteria that match the segment you are interested in or click on NEW from the Actions' menu to create a new segment. Select a Segmented Area and one of the available Criteria Templates or provide a new CRMQL query (or select a template) and SAVE the segment.  If SAVE AS DRAFT is selected, the criteria can be committed and the CRMQL query can be saved without being correct.

 

Back to top


Modifying a segment


Use EDIT from the Actions' menu to enter edit mode and update the criteria.  This will result in a different segment. The template and criteria can be edited in both draft or posted segments, but the entity cannot be modified in any case.


Including specific records in the segment

 


Define a set of records that should be included in the segment regardless of specified criteria. The type of information that can be added to the static items depends on the selected entity. Use the 'Manage Static Items' action available from the Actions Menu to add items from a segment. If you would like to remove specific items then just click on the remove icon next to the item.

Previewing and exporting segments


You can preview a number of the records that will be included in a segment through the Matched Items section

It is also possible to view a comprehensive list of the records included in a segment by exporting them as a CSV file through Export button in the Matched Items section

Segment preview information includes: 

  1. Entity ID
  2. Entity number (where applicable)
  3. Entity name
  4. Entity alternative code (where applicable)
  5. Entity description (where applicable)

Preview information additionally displays either the Accounts Receivable Name or the Contact Information Name depending on whether the entity is an account receivable-based or a contact information-based entity.

  • The Accounts Receivable Name is available when previewing segments for:
    • Bills
    • Buy In Advance Requests
    • Credit Notes
    • Invoices
    • Invoice Cancellations
    • Jobs
    • Payments
    • Payment cancellations
    • Payment gateway cards
    • Payment gateway requests
    • Refunds
    • Rewards Participants
    • Award Transactions
    • Spend Transactions
    • Award Expiration Transactions
    • Service Requests
    • Subscriptions
    • Wallets
    • Write Offs
    • Subscription Actions
  • The Contact Information Name is available when previewing segments for:
    • Activities
    • Leads

Back to top

Using segments throughout the system


As shown in the table below, several system processes use segments.

Entity
How segments are used by the module
RewardsUsed by reward offers as award conditions. Participants from a specific segment can be eligible to be awarded or can be excluded.

Provisioning

  • Conax Contego
  • Nagravision
  • EXSETSMS

Segments are included in provisioning provider fingerprinting run criteria to include or exclude subscribers from being sent a fingerprinting message.

Additive Discount

Segments are included in additive discount definition criteria to include or exclude customers from being eligible for the discounts.

Pricing StrategySegments are included in conditional price plan conditions to allow (or prevent) customers from being billed from a specific price plan.
Notifications

Segments are included in notification types to include or exclude customers from being notified.


  

Business Flows


Panel
borderColorTurquoise
borderStyledashed
titleProvide discount for customers which belong in a segment

Scenario

Aluxsat Co. wants to offer a discount to its subscribers on the month of their birthday.


Configuration

Segments

  • Create the following Segment:
    • Name: Subscriber - birthday month  
    • Entity: Accounts receivable
    • Criteria: 

      accounts_receivable.contact_information.month_of_birth = current_month()

 

Additive Discount

 
  • Create an auto apply discount for subscriptions.
  • In the Discount Rules section, define that the discount will be applied once a year
  • Add the segment in the non-usage segment criteria.
 

Notification

 
  • Create a notification type for subscriptions.
  • Create a communication template which will wish the subscriber a happy birthday and inform them of the discount:

    Dear #subscription.accounts_receivable.name  

    Happy Birthday !!!

    We value our customers and would like to celebrate your birthday with you by offering you a 50% discount on your current subscription fee for this month for subscription:  #subscription.number  

    Best Regards

    Company ZX Team

  • Add the segment in the notification criteria.
  • Execute a notification run before the billing is executed so that the customers are informed of the discount.
 

Process

 

During billing, the system will retrieve the segment of subscribers who have their birthday during the current month and will discount their monthly bill




Panel
borderColorTurquoise
borderStyledashed
titleUsing Segment Criteria Templates

Scenario

Aluxsat Co. wants to identify non-VIP customers that owe money to the company for use in various business processes. 


Configuration

Segment Criteria Template

  • Create the following Segment Criteria Template:
    • Name:  Accounts receivable in debt excluding VIP
    • Segmented Area: Accounts receivable
    • Criteria:
      accounts_receivable.balance > 0
      and accounts_receivable.credit_status = "Exceeded"
      and accounts_receivable.classification!= "VIP"

Segment

  • Create the following segment using the above template:
    • Template: Accounts receivable in debt, excluding VIP 
    • Name: Accounts receivable in debt, excluding VIP


Ui expand
titleCRMQL Examples


Contact Information

Panel
id2
titleAluxsat Co. needs to create segments based on contacts

Retrieve Contact Information of type 'Person' living in Nicosia.

Code Block
languagesql
contact_information.type = "Person" 
and exist(contact_information.address.area = "Nicosia")


Retrieve Contact Information of type 'Person' that have their birthday in the current month.

Code Block
languagesql
contact_information.type="Person" 
and contact_information.month_of_birth = current_month() 


Code Block
languagesql
contact_information.type="Person" 
and contact_information.month_of_birth > current_month()
and contact_information.month_of_birth <= (current_month()+1) 



Subscriptions

Panel
id2
titleAluxsat Co. needs to create segments based on subscriptions

Retrieve Subscriptions of type 'Normal' that have at least one 'Effective' service.

Code Block
languagesql
subscription.type = "Normal" 
and exist(subscription.service.life_cycle_state = "Effective")


Retrieve Subscriptions of type 'Normal' that do not have an 'Effective' movie service.

Code Block
languagesql
subscription.type="Normal" 
and not exist
(subscription.service.life_cycle_state="Effective" 
and subscription.service.product= "movies" )


Retrieve Subscriptions of type 'Normal' that have at least one 'Not Effective' service that was terminated in the last 15 days.

Code Block
languagesql
subscription.type="Normal" 
and exist(subscription.service.life_cycle_state="Not Effective" 
and subscription.service.life_cycle_state_start_date <= day_end() 
and subscription.service.life_cycle_state_start_date >= days_before(day_end(),15) )



Accounts Receivable

Panel
id2
titleAluxsat Co. needs to create segments based on accounts receivable

Retrieve Accounts Receivable with a balance greater than '0', a credit status that is 'Exceeded', and a classification that is not 'VIP'.

Code Block
languagesql
accounts_receivable.balance > 0 
and accounts_receivable.credit_status = "Exceeded" 
and accounts_receivable.classification!= "VIP"

Retrieve Accounts Receivable that are not set to receive bills by email.

Code Block
languagesql
accounts_receivable.life_cycle_state="Active"
and not exist(accounts_receivable.presentment_preference.presentment_method="Email"
and accounts_receivable.presentment_preference.active=true)



Bills

Panel
id2
titleAluxsat Co. needs to create segments based on bills

Retrieve Bills that are partially paid and their outstanding or unsettled amount is less than '10'.

Code Block
languagesql
bill.status = "Partially_settled" 
and (bill.outstanding_amount < 10
or bill.unsettled_amount < 10)

Retrieve Bills that are due at the end of the month and are yet to be communicated by email.

Code Block
languagesql
bill.due_date=month_end()
and not exist(bill.communication_queue.media="Email"
and bill.communication_queue.life_cycle_state="Completed")

Retrieve Bills that are due at the end of the month and were communicated with errors.

Code Block
languagesql
bill.due_date=month_end()
and exist(bill.communication_queue.media="Email" and bill.communication_queue.life_cycle_state="Rejected")
and not exist(bill.communication_queue.media="Email" and bill.communication_queue.life_cycle_state="Completed")



Activities

Panel
id2
titleAluxsat Co. needs to create segments based on activities

Retrieve Activities of type 'Installation' that are still in progress and are past their estimated completion date.

Code Block
languagesql
activity.type="Installation" 
and activity.life_cycle_state = "In progress" 
and activity.estimated_completion_date < day_start()



Jobs

Panel
id2
titleAluxsat Co. needs to create segments based on jobs

Retrieve Jobs of type 'Maintenance' that were completed yesterday.

Code Block
languagesql
job.type="Maintenance" 
and job.life_cycle_state = "completed" 
and job.actual_completion_date < day_start() 
and job.actual_completion_date >=days_before(day_start(),1)



Rewards Participants 

Panel
id2
titleAluxsat Co. needs to create segments based on Rewards Participants

Retrieve Rewards Participants who have signed up today.

Code Block
languagesql
rewards_participant.sign_up_date >= day_start() 

Retrieve Rewards Participants who signed up to a specific scheme today.

Code Block
languagesql
rewards_participant.sign_up_date >= day_start() 
and exist(rewards_participant.participating_reward_scheme.name="New Customers")



Award Reward Transactions 

Panel
id2
titleAluxsat Co. needs to create segments based on Award Reward Transactions

Retrieve Award Reward Transactions submitted this week by a specific offer.

Code Block
languagesql
award_reward_transaction.submitted_date >= week_start()
and award_reward_transaction.submitted_date <= week_end()
and award_reward_transaction.reward_offer.number="00034



Spend Reward Transactions 

Panel
id2
titleAluxsat Co. needs to create segments based on Spend Reward Transactions

Retrieve Spend Reward Transactions with a total amount of more than '10', submitted by specific units.

Code Block
languagesql
spend_reward_transactions.total_amount > 10
and (spend.reward_transactions.submitted_by_unit="Sales Department 1" or spend.reward_transactions.submitted_by_unit="Sales Department 2" )



Service Requests

Panel
id2
titleAluxsat Co. needs to create segments based on Service Requests

Retrieve Service Requests of classification 'Request for Change' that were completed yesterday.

Code Block
languagesql
service_request.classification ="Request for Change" 
and service_request.life_cycle_state = "completed" 
and service_request.actual_completion_date < day_start() 
and service_request.actual_completion_date >= days_before(day_start(),1)


Payment Gateway Cards

Panel
id2
titleAluxsat Co. needs to create segments based on Payment Gateway Cards

Retrieve Payment Gateway Cards that are going to expire in the next month.

Code Block
languagesql
payment_gateway_card.payment_gateway_provider="Stripe" 
and (
   payment_gateway_card.expiration_year=current_year() 
   and payment_gateway_card.expiration_month=(current_month()+1)
   or
   (
      payment_gateway_card.expiration_year=(current_year()+1) 
      and payment_gateway_card.expiration_month=1 
      and current_month()=12
    )
)

Retrieve Payment Gateway Cards that failed the security code check.

Code Block
languagesql
payment_gateway_card.payment_gateway_provider="Stripe" 
and payment_gateway_card.security_code_check_result=FAIL



Payment Gateway Requests

Panel
id2
titleAluxsat Co. needs to create segments based on Payment Gateway Requests

Retrieve Payment Gateway Requests that were rejected during the last month.

Code Block
languagesql
payment_gateway_request.payment_gateway_provider="Stripe" 
and payment_gateway_request.life_cylce_state="REJECTED" 
and payment_gateway_request.created_date<=month_start()
Retrieve Payment Gateway Requests that were posted successfully during the last month.
Code Block
languagesql
payment_gateway_request.payment_gateway_provider="Stripe" 
and payment_gateway_request.life_cylce_state="POSTED" 
and payment_gateway_request.created_date<=month_start()



Payments

Panel
id2
titleAluxsat Co. needs to create segments based on Payments

Retrieve Payments of Type 'Web Payments' posted within the last day.

Code Block
languagesql
payment.type="Web Payments" 
and posted_date <= day_end() 
and posted_date>= day_start()

Retrieve Payments that were posted through Vouchers within the last week.

Code Block
languagesql
posted_date<= day_end() and posted_date >= weeks_before(day_end(),1)
and payment.voucher.life_cycle_state="Used"

Retrieve Payments that were posted within the last day and are yet to be communicated by email.

Code Block
languagesql
posted_date <= day_end() and posted_date>= day_start()
and not exist(payment.communication.direction="Outgoing"
and payment.communication.media="Email"
and payment.communication.life_cycle_state="Completed")




Ui expand
titleUseful Links

Filter by label (Content by label)
showLabelsfalse
spacesV4Manual
showSpacefalse
cqllabel = "global" and space = "V4Manual"
labelsglobal



Column
width20%


Panel

On this page

Table of Contents
maxLevel3



Panel

Release news

Check out a full list of CRM.COM features available per release.

Ui button
colorturquoise
newWindowtrue
iconinfo
titleFeatures
urlhttps://discover.crm.com/display/V4ReleaseNotes/Features

Check out upgrade notes to find out what needs to be done to upgrade from your current release to the latest release of CRM.COM.

Ui button
colorturquoise
newWindowtrue
iconinfo
titleUpgrade Notes
urlhttps://discover.crm.com/display/V4ReleaseNotes/Upgrade+Notes



...