---
id: object/table/5088
type: object
title: Table 5088 "Profile Questionnaire Line"
summary: Table 5088 "Profile Questionnaire Line" in Base Application (Microsoft.CRM.Profiling). 26 fields, 16 public procedures. Present since at least BC23, still in BC30, changed in BC24, BC27-28.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "28"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: f4195cb57de462ede68275dd5766b3df3057419b4d895cc571325fdc6ec2ec81
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/CRM/Profiling/ProfileQuestionnaireLine.Table.al
    title: src/Layers/W1/BaseApp/CRM/Profiling/ProfileQuestionnaireLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/marketing-create-contact-profile-questionnaire
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/relationship-management/manage-contacts
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 5088
name: Profile Questionnaire Line
namespace: Microsoft.CRM.Profiling
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "27"
  - "28"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 26
  procedures: 19
  events: 0
  subscribers: 0
relations:
  out: 3
  referenced_by: 6
  pages: 9
  extended_by: 0
  event_subscribers: 0
  calls: 3
  called_by: 0
  implements: 0
---

# Table 5088 "Profile Questionnaire Line"

> Table 5088 "Profile Questionnaire Line" in Base Application (Microsoft.CRM.Profiling). 26 fields, 16 public procedures. Present since at least BC23, still in BC30, changed in BC24, BC27-28.

Base Application · Microsoft.CRM.Profiling · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/CRM/Profiling/ProfileQuestionnaireLine.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 5110 "Profile Questionnaire Setup"](../page/5110.md) (1 Learn page).

## Properties

| Property | Value |
|---|---|
| Caption | Profile Questionnaire Line |
| DataClassification | CustomerContent |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Profile Questionnaire Code | Code[20] | — | TableRelation [Table 5087 "Profile Questionnaire Header"](../table/5087.md) (Profile Questionnaire Header) |
| 2 | Line No. | Integer | Specifies the number of the profile questionnaire line. This field is used internally by the program. |  |
| 3 | Type | Enum "Profile Questionnaire Line Type" | Specifies whether the entry is a question or an answer. | enum [Enum 5090 "Profile Questionnaire Line Type"](../enum/5090.md) |
| 4 | Description | Text[250] | Specifies the profile question or answer. | NotBlank |
| 5 | Multiple Answers | Boolean | Specifies that the question has more than one possible answer. |  |
| 6 | Auto Contact Classification | Boolean | Specifies that the question is automatically answered when you run the Update Contact Classification batch job. |  |
| 7 | Customer Class. Field | Enum "Profile Quest. Cust. Class. Field" | Specifies the customer information that the automatic classification is based on. There are seven options: Blank, Sales (LCY), Profit (LCY), Sales Frequency (Invoices/Year), Avg. Invoice Amount (LCY), Discount (%), and Avg. Overdue (Day). | enum [Enum 5085 "Profile Quest. Cust. Class. Field"](../enum/5085.md) |
| 8 | Vendor Class. Field | Enum "Profile Quest. Vend. Class. Field" | Specifies the vendor information that the automatic classification is based on. There are six options: | enum [Enum 5086 "Profile Quest. Vend. Class. Field"](../enum/5086.md) |
| 9 | Contact Class. Field | Enum "Profile Quest. Cont. Class. Field" | Specifies the contact information on which the automatic classification is based. There are seven options: | enum [Enum 5084 "Profile Quest. Cont. Class. Field"](../enum/5084.md) |
| 10 | Starting Date Formula | DateFormula | Specifies the date to start the automatic classification of your contacts. |  |
| 11 | Ending Date Formula | DateFormula | Specifies the date to stop the automatic classification of your contacts. |  |
| 12 | Classification Method | Option | Specifies the method you can use to classify contacts. There are four options: Blank, Defined Value, Percentage of Value and Percentage of Contacts. | OptionCaption: ,Defined Value,Percentage of Value,Percentage of Contacts |
| 13 | Sorting Method | Option | Specifies the sorting method for the automatic classification on which the question is based. This field is only valid when you select Percentage of Value or Percentage of Contacts in the Classification Method field. It indicates the direction of the percentage. There are two options: | OptionCaption: ,Descending,Ascending |
| 14 | From Value | Decimal | Specifies the value from which the automatic classification of your contacts starts. |  |
| 15 | To Value | Decimal | Specifies the value that the automatic classification of your contacts stops at. |  |
| 16 | No. of Contacts | Integer | Specifies the number of contacts that have given this answer. | FlowField: count("Contact Profile Answer" where("Profile Questionnaire Code" = field("Profile Questionnaire Code"), "Line No." = field("Line No."))); not editable |
| 17 | Priority | Enum "Profile Answer Priority" | Specifies the priority you give to the answer and where it should be displayed on the lines of the Contact Card. There are five options: | enum [Enum 5089 "Profile Answer Priority"](../enum/5089.md) |
| 18 | No. of Decimals | Integer | Specifies the number of decimal places to use when entering values in the From Value and To Value fields. |  |
| 19 | Min. % Questions Answered | Decimal | Specifies the number of questions in percentage that must be answered for this rating to be calculated. |  |
| 9501 | Wizard Step | Option | — | OptionCaption: ,1,2,3,4,5,6; not editable |
| 9502 | Interval Option | Option | — | OptionCaption: Minimum,Maximum,Interval |
| 9503 | Answer Option | Option | — | OptionCaption: HighLow,ABC,Custom |
| 9504 | Answer Description | Text[250] | — |  |
| 9505 | Wizard From Value | Decimal | — |  |
| 9506 | Wizard To Value | Decimal | — |  |
| 9707 | Wizard From Line No. | Integer | — |  |

## Keys

- Key1: Profile Questionnaire Code, Line No. (clustered)
- Key2: Type, Description

## Procedures

- `MoveUp()`
- `MoveDown()`
- `Question(): Text[250]`
- `FindQuestionLine(): Integer`
- `CreateRatingFromProfQuestnLine(var ProfileQuestnLine: Record "Profile Questionnaire Line")`
- `CheckStatus()`
- `PerformNextWizardStatus()`
- `PerformPrevWizardStatus()`
- `FinishWizard()`
- `SetIntervalOption()`
- `ValidateIntervalOption()`
- `ValidateAnswerOption()`
- `NoOfProfileAnswers(): Decimal`
- `ShowAnswers()`
- `GetProfileLineAnswerDesc(): Text[250]`
- `GetAnswers(var ProfileQuestionnaireLine: Record "Profile Questionnaire Line")`

Plus 3 local procedures.

## Triggers

OnDelete

## Relations

- lookup page [Page 5149 "Profile Questn. Line List"](../page/5149.md)
- Profile Questionnaire Code: TableRelation [Table 5087 "Profile Questionnaire Header"](../table/5087.md)
- No. of Contacts: CalcFormula [Table 5089 "Contact Profile Answer"](../table/5089.md)

## Referenced by

6 fields in 3 objects relate to this table (TableRelation or CalcFormula).

- [Table 5111 "Rating"](../table/5111.md): Profile Question Description, Profile Questionnaire Line No., Rating Profile Quest. Line No.
- [Table 5089 "Contact Profile Answer"](../table/5089.md): Answer, Line No.
- [Table 5096 "Segment Wizard Filter"](../table/5096.md): Profile Questn. Line Filter

## Pages and codeunits on this table

- [Page 5110 "Profile Questionnaire Setup"](../page/5110.md) (source table)
- [Page 5112 "Profile Question Details"](../page/5112.md) (source table)
- [Page 5114 "Contact Profile Answers"](../page/5114.md) (source table)
- [Page 5149 "Profile Questn. Line List"](../page/5149.md) (source table)
- [Page 5169 "Profile Questn. Line Subform"](../page/5169.md) (source table)
- [Page 5172 "Answer Points"](../page/5172.md) (source table)
- [Page 5189 "Create Rating"](../page/5189.md) (source table)
- [Page 5190 "Rating Answers"](../page/5190.md) (source table)
- [Page 5191 "Create Rating Subform"](../page/5191.md) (source table)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 5059 "ProfileManagement"](../codeunit/5059.md) (1 call: `FinishWizard → ShowAnswerPoints`)
- [Page 5189 "Create Rating"](../page/5189.md) (1 call: `StartWizard → (object)`)
- [Page 5190 "Rating Answers"](../page/5190.md) (1 call: `ShowAnswers → (object)`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC27-28

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "table", object_name: "Profile Questionnaire Line")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
