Recording consent plan

Configure consent management for call recording compliance

Enterprise Feature: Recording consent plans are only available for Enterprise customers. Contact your account manager or sales team to enable this feature.

Overview

The recording consent plan feature automatically creates a consent assistant that asks users for permission to record calls before transferring them to your main assistant. Call recording only begins after consent is granted, ensuring compliance with privacy laws and regulations across different jurisdictions.

Recording consent plans enable you to:

  • Automatically request recording consent before each call
  • Handle consent through two different interaction patterns
  • Ensure compliance with privacy regulations (GDPR, CCPA, etc.)
  • Maintain audit trails of consent decisions while ensuring privacy during the consent process

How it works:

  1. A consent assistant is automatically created and placed first in the call flow
  2. Users interact with the consent assistant to grant or deny recording permission
  3. If consent is granted, the call transfers to your original assistant
  4. If consent is denied, the call ends or transfers based on your configuration

Vapi supports two types of recording consent plans, each designed for different use cases and legal requirements.

This type assumes consent is granted if the user remains on the call after hearing the consent message. It’s commonly used for customer service scenarios where staying on the line implies agreement.

Best practices for stay-on-line messages:

  • Clearly state that staying on the line implies consent
  • Mention the purpose of recording (quality, training, etc.)
  • Provide clear instructions to hang up if they don’t consent

Example message:

"For quality and training purposes, this call may be recorded. Please stay on the line if you agree to being recorded, or hang up if you do not consent."

This type requires explicit verbal consent from the user. The AI assistant will ask for clear confirmation and continue asking until the user provides explicit consent or declines.

Best practices for verbal consent messages:

  • Ask for explicit verbal confirmation
  • Use clear yes/no language
  • Explain what happens if they decline

Example message:

"This call may be recorded for quality and training purposes. Do you agree to being recorded? Please say 'yes' if you agree or 'no' if you decline."

Configuration

Add the recording consent plan to your assistant’s compliancePlan:

Basic Stay-on-Line Configuration

1{
2 "compliancePlan": {
3 "recordingConsentPlan": {
4 "type": "stay-on-line",
5 "message": "For quality and training purposes, this call may be recorded. Please stay on the line if you agree to being recorded, or hang up if you do not consent.",
6 "voice": {
7 "voiceId": "Neha",
8 "provider": "vapi"
9 },
10 "waitSeconds": 3
11 }
12 }
13}
1{
2 "compliancePlan": {
3 "recordingConsentPlan": {
4 "type": "verbal",
5 "message": "This call may be recorded for quality and training purposes. Do you agree to being recorded? Please say 'yes' if you agree or 'no' if you decline.",
6 "voice": {
7 "voiceId": "Neha",
8 "provider": "vapi"
9 },
10 "declineToolId": "09dd39cc-75f0-45eb-ace3-796ee3aa9c1e"
11 }
12 }
13}

End-of-Call Report Structure

When you add a recording consent plan to your assistant, the compliance data will be included in the end-of-call-report webhook. Here’s what the compliance section looks like in the webhook payload:

1{
2 "message": {
3 "type": "end-of-call-report",
4 "analysis": {
5 /* call analysis data */
6 },
7 "artifact": {
8 /* call artifacts */
9 },
10 "startedAt": "2024-01-15T10:25:00Z",
11 "endedAt": "2024-01-15T10:35:00Z",
12 "endedReason": "assistantEndedCall",
13 "cost": 0.15,
14 "compliance": {
15 "recordingConsent": {
16 "type": "verbal",
17 "grantedAt": "2024-01-15T10:30:00Z"
18 }
19 },
20 "transcript": "/* call transcript */",
21 "recordingUrl": "https://...",
22 "stereoRecordingUrl": "https://..."
23 }
24}
1{
2 "message": {
3 "type": "end-of-call-report",
4 "analysis": {
5 /* call analysis data */
6 },
7 "artifact": {
8 /* call artifacts */
9 },
10 "startedAt": "2024-01-15T10:25:00Z",
11 "endedAt": "2024-01-15T10:30:00Z",
12 "endedReason": "assistantEndedCall",
13 "cost": 0.1,
14 "compliance": {
15 "recordingConsent": {
16 "type": "verbal"
17 }
18 },
19 "transcript": "/* call transcript */"
20 }
21}

Key points about the webhook structure:

  • recordingConsent field: Always present in the compliance object when a consent plan is configured
  • type: Shows which consent type was used ("verbal" or "stay-on-line")
  • grantedAt: Only set when the user explicitly grants permission
  • Missing grantedAt: Indicates the user declined consent or hung up before granting permission

This webhook structure allows you to easily determine whether recording consent was granted and audit compliance decisions for each call. The compliance data is sent as part of the end-of-call-report webhook, which includes all call details, analysis, and compliance information.

Implementation

1

Configure Your Assistant

Add the recording consent plan to your assistant’s compliance plan configuration.

  1. Navigate to Assistants in your Vapi dashboard
  2. Create a new assistant or edit an existing one
  3. Go to the Compliance section
  4. Enable Recording Consent Plan
  5. Choose your consent type (Stay-on-Line or Verbal)
  6. Enter your consent message
  7. Configure additional options (voice, decline tool, etc.)
  8. Save your assistant
2

Test Your Configuration

Create a test call to verify your consent flow works correctly.

  1. Go to your assistant’s page
  2. Click Test Call
  3. Verify the consent message plays correctly
  4. Test both consent and decline scenarios
  5. Check that the call transfers properly after consent

Decline Tool Options

When users decline recording consent, you can configure different actions using decline tools:

For detailed information about these tools, see:

Best Practices

Message Design

  • Stay-on-Line: Clearly state that staying implies consent
  • Verbal: Ask for explicit confirmation with clear yes/no options
  • Length: Keep messages concise but comprehensive
  • Tone: Use professional, clear language appropriate for your industry

Voice Selection

  • Use a different voice for consent messages to create distinction
  • Choose voices that match your brand and industry requirements
  • Consider using more formal voices for compliance scenarios

Decline Handling

  • End Call: Use when you cannot provide service without recording
  • Transfer: Use when you have alternative service options
  • Handoff: Use when you have non-recording assistants available

Testing

  • Test both consent and decline scenarios thoroughly
  • Verify timing works correctly for your use case
  • Check that decline tools execute properly
  • Monitor call logs to ensure compliance data is recorded

Troubleshooting

Users not hearing consent message

  • Verify the consent message is not empty
  • Check that the voice configuration is valid
  • Test with different voice providers if needed

Decline tool not executing

  • Verify the decline tool configuration is valid
  • Check that referenced assistants or phone numbers exist
  • Ensure the tool type matches your intended action

Next Steps