Skip to content

Commit 0ee026d

Browse files
chore: complement pci docs
1 parent 4af2d1c commit 0ee026d

File tree

1 file changed

+169
-0
lines changed

1 file changed

+169
-0
lines changed

fern/security-and-privacy/PCI.mdx

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,175 @@ Example configuration for `PCI compliant` assistant is:
5858
```
5959
Note: The default value for `compliancePlan.pciEnabled` is false. Activating this setting aligns your assistant with PCI DSS standards by ensuring data is securely transmitted without being stored on Vapi’s systems.
6060

61+
## Selective Recording with Squads
62+
63+
For businesses that need to collect payment information while maintaining compliance, you can use **squads** to selectively disable recording, logging, and transcription only during sensitive payment collection phases. This approach allows you to:
64+
65+
- **Record the beginning and end** of calls for quality assurance
66+
- **Disable all artifacts** during payment data collection
67+
- **Stay compliant** while gathering credit card information
68+
- **Use handoff tools** to seamlessly transfer between assistants
69+
- **Leverage Vapi's logging and trace recording** for non-sensitive portions while staying compliant
70+
71+
### Payment Collection Squad Example
72+
73+
Here's a complete squad configuration that demonstrates this approach:
74+
75+
```json
76+
{
77+
"name": "Payment Squad Without Recording",
78+
"members": [
79+
{
80+
"assistant": {
81+
"name": "Assistant 1",
82+
"model": {
83+
"model": "gpt-4o",
84+
"provider": "openai",
85+
"messages": [
86+
{
87+
"content": "You are a helpful QuickSend assistant. Greet the caller, let them know you'll help them add a new payment method, and then smoothly transfer them to the payment setup assistant.",
88+
"role": "system"
89+
}
90+
]
91+
},
92+
"voice": {
93+
"voiceId": "Elliot",
94+
"provider": "vapi"
95+
},
96+
"transcriber": {
97+
"model": "nova-2",
98+
"provider": "deepgram",
99+
"language": "en"
100+
},
101+
"keypadInputPlan": {
102+
"enabled": true,
103+
"timeoutSeconds": 10,
104+
"delimiters": [
105+
"#"
106+
]
107+
},
108+
"firstMessage": "Welcome to QuickSend! I'll help you add a new payment method. Let's get started.",
109+
"firstMessageMode": "assistant-speaks-first"
110+
},
111+
"assistantDestinations": [
112+
{
113+
"type": "assistant",
114+
"assistantName": "Assistant 2",
115+
"description": "Transfer the caller to the payment setup assistant."
116+
}
117+
]
118+
},
119+
{
120+
"assistant": {
121+
"name": "Assistant 2",
122+
"model": {
123+
"model": "gpt-4o",
124+
"provider": "openai",
125+
"messages": [
126+
{
127+
"content": "You are a payment setup assistant. Ask the caller to enter their new card number followed by the pound (#) key. When you receive it, repeat it back clearly for confirmation. Once confirmed, transfer them to the payment confirmation assistant.",
128+
"role": "system"
129+
}
130+
]
131+
},
132+
"artifactPlan": {
133+
"recordingEnabled": false,
134+
"loggingEnabled": false,
135+
"transcriptPlan": {
136+
"enabled": false
137+
}
138+
},
139+
"voice": {
140+
"voiceId": "Elliot",
141+
"provider": "vapi"
142+
},
143+
"transcriber": {
144+
"model": "nova-2",
145+
"provider": "deepgram",
146+
"language": "en"
147+
},
148+
"firstMessage": "Please enter your new card number followed by the POUND key.",
149+
"firstMessageMode": "assistant-speaks-first",
150+
"keypadInputPlan": {
151+
"enabled": true,
152+
"timeoutSeconds": 10,
153+
"delimiters": [
154+
"#"
155+
]
156+
}
157+
},
158+
"assistantDestinations": [
159+
{
160+
"type": "assistant",
161+
"assistantName": "Assistant 3",
162+
"description": "Transfer the caller to the payment confirmation assistant.",
163+
"contextEngineeringPlan": {
164+
"type": "none"
165+
},
166+
"variableExtractionPlan": {
167+
"schema": {
168+
"type": "object",
169+
"properties": {
170+
"lastFourDigits": {
171+
"type": "string",
172+
"description": "last four digits of the card the user gave as input"
173+
}
174+
}
175+
}
176+
}
177+
}
178+
]
179+
},
180+
{
181+
"assistant": {
182+
"name": "Assistant 3",
183+
"model": {
184+
"model": "gpt-4o",
185+
"provider": "openai",
186+
"messages": [
187+
{
188+
"content": "You are a payment confirmation assistant. Thank the caller for providing their card number. Read out the last four digits to them and confirm that they are correct. Once confirmed, let the caller know the payment method has been added successfully and close the conversation politely. Last four digits are {{lastFourDigits}}",
189+
"role": "system"
190+
}
191+
]
192+
},
193+
"voice": {
194+
"voiceId": "Elliot",
195+
"provider": "vapi"
196+
},
197+
"transcriber": {
198+
"model": "nova-2",
199+
"provider": "deepgram",
200+
"language": "en"
201+
},
202+
"firstMessage": "Thanks for providing your card number. Do you want to proceed with your payment?",
203+
"firstMessageMode": "assistant-speaks-first"
204+
}
205+
}
206+
]
207+
}
208+
```
209+
210+
### How This Squad Works
211+
212+
1. **Assistant 1** (Greeting): Records and logs the initial conversation
213+
2. **Assistant 2** (Payment Collection): **Disables all artifacts** using `artifactPlan` while collecting credit card data via keypad input
214+
3. **Assistant 3** (Confirmation): Records and logs the final confirmation
215+
216+
The key component is the `artifactPlan` in Assistant 2:
217+
218+
```json
219+
"artifactPlan": {
220+
"recordingEnabled": false,
221+
"loggingEnabled": false,
222+
"transcriptPlan": {
223+
"enabled": false
224+
}
225+
}
226+
```
227+
228+
This ensures that sensitive payment information is never recorded, logged, or transcribed, while still allowing you to maintain call quality data for the non-sensitive portions of the conversation.
229+
61230
## Can PCI be used alongside HIPAA?
62231
Yes, you can enable both HIPAA and PCI compliance for an assistant. In this case, the restrictions from both compliances will apply, meaning that no recordings or transcripts will be stored or transmitted, even if you have specified cloud storage endpoints or webhooks for storing transcripts.
63232

0 commit comments

Comments
 (0)