Properties appear different if set Dashboard/API
# support
g
I have a doubt regarding few variables that appear in different ways if set by dashboard or by api and I'm not sure I'm really using that. Are they the same? Different things? Something is outdated between docs and dashboard? For example in the voice I'm currently doing: "chunkPlan": { "enabled": true, "minCharacters": 45, "punctuationBoundaries": [".", "!", "?"], "formatPlan": { "enabled": true, "numberToDigitsCutoff": 2025 } } But the same appears to be at the root when set from dashboard and indeed in the dashboard the one created as above doesn't show changes in punctuation bounderies. This is result from getting into dashboard: "inputMinCharacters": 45, "optimizeStreamingLatency": 3, "inputPunctuationBoundaries": [ "?", "!", "." ]
Similar to HIIPAEnabled should it be in compliance plan or at the root? When I set inside the compliance plan and i get the assisstant back, it will show both inside compliance plan and at root. This is an issue because later I could modify one but not the other and get unexpected behaviour. Same happen for recordingEnabled at root or inside the artifact plan?
s
Let me help clarify these concerns. Tthere are several deprecated fields that are being transitioned to more organized plan-based structures. Let me break this down: 1. Voice Chunking Configuration The root level fields are deprecated in favor of the structured chunkPlan:
Copy code
@IsOptional()

  @IsBoolean()

  @ApiHideProperty()

  inputPreprocessingEnabled?: boolean;
This shows inputPreprocessingEnabled is deprecated in favor of chunkPlan.enabled. The dashboard might still show both because of backward compatibility, but you should use the new structure:
Copy code
export class ChunkPlan {

  /**

   * This determines whether the model output is chunked before being sent to the voice provider. Default true.

   *

   * Usage:

   * - To rely on the voice provider's audio generation logic, set this to false.

   * - If seeing issues with quality, set this to true.

   *

   * If disabled, Vapi-provided audio control tokens like <flush /> will not work.

   * @default true

   */

  @IsOptional()

  @IsBoolean()

  @ApiPropertyOptional({ example: true })

  enabled?: boolean;

  /**

   * This is the minimum number of characters in a chunk.

   *

   * Usage:

   * - To increase quality, set this to a higher value.

   * - To decrease latency, set this to a lower value.

   *

   * @default 30

   */

  @IsOptional()

  @IsNumberWithHelpfulError()

  @IsInt()

  @Min(1)

  @Max(80)

  @ApiPropertyOptional({ example: 30 })

  minCharacters?: number;

  /**

   * These are the punctuations that are considered valid boundaries for a chunk to be created.

   *

   * Usage:

   * - To increase quality, constrain to fewer boundaries.

   * - To decrease latency, enable all.

   *

   * Default is automatically set to balance the trade-off between quality and latency based on the provider.

   */

  @IsOptional()

  @ArrayUnique()

  @ArrayNotEmpty()

  @IsIn(INPUT_PUNCTUATION_BOUNDARIES, { each: true })

  @ApiPropertyOptional({

    enum: INPUT_PUNCTUATION_BOUNDARIES,

    isArray: true,

    example: DEFAULT_INPUT_PUNCTUATION_BOUNDARIES,

  })

  punctuationBoundaries?: Punctuation[];

  /**

   * This is the plan for formatting the chunk before it is sent to the voice provider.

   */

  @IsOptional()

  @IsObject()

  @ValidateNested()

  @Type(() => FormatPlan)

  formatPlan?: FormatPlan;

}
2. HIPAA Configuration The root level hipaaEnabled is deprecated in favor of compliancePlan.hipaaEnabled:
Copy code
* When this is enabled, no logs, recordings, or transcriptions will be stored. At the end of the call, you will still receive an end-of-call-report message to store on your server. Defaults to false.

   *

   * @deprecated Use compliancePlan.hipaaEnabled instead.

   *

   */

  @IsOptional()

  @IsBoolean()

  @ApiHideProperty()

  hipaaEnabled?: boolean;
3. Recording Configuration The root level recordingEnabled is being transitioned to artifactPlan.recordingEnabled:
Copy code
* This determines whether assistant's calls are recorded. Defaults to true.

   *

   * Usage:

   * - If you don't want to record the calls, set this to false.

   * - If you want to record the calls when assistant.hipaaEnabled (deprecated) or assistant.compliancePlan.hipaaEnabled explicity set this to true and make sure to provide S3 or GCP credentials on the Provider Credentials page in the Dashboard.

   *

   * You can find the recording at call.artifact.recordingUrl and call.artifact.stereoRecordingUrl after the call is ended.

   *

   * @default true

   */

  @IsOptional()

  @IsBoolean()

  @ApiPropertyOptional({ example: true })

  recordingEnabled?: boolean;
Recommendation: Always use the new plan-based structure: { "chunkPlan": { "enabled": true, "minCharacters": 45, "punctuationBoundaries": [".", "!", "?"], "formatPlan": { "enabled": true, "numberToDigitsCutoff": 2025 } }, "compliancePlan": { "hipaaEnabled": true }, "artifactPlan": { "recordingEnabled": true } } The reason you see both versions is due to backward compatibility. The system maintains both to prevent breaking existing implementations, but you should use the new structured approach as the root-level fields will eventually be removed.
g
Ok thank you very much for the details. So in the end I should use the newer ones and delete the older.
v
Yes your correct @[giorgior27](https://app.plain.com/workspace/w_01HYEQ5FKPH8CPX2MS608B6S51/customers/c_01JK9QTMFRGQSE8J1E8G2ZVM15/) and marking this ticket as solved.
2 Views