Transcript & Record Delivery Guide
Transcript & Record Delivery Guide
Velaro can automatically deliver a transcript of every chat conversation to your CRM, cloud storage, or any custom destination. This guide explains all available delivery methods and how to set them up.
---
How delivery works
When a conversation ends (resolves), Velaro automatically pushes the transcript to each configured destination. All pushes are additive — Velaro's own archive is never deleted, and you can send to multiple destinations at once.
Your delivery options fall into two groups:
Native CRM pushes — automatic, zero-code, turn on in one click:
- Salesforce (Contact or Lead ContentNote)
- HubSpot (Note on Contact)
- Dynamics 365 (Note on Contact or Lead)
- NetSuite (Customer transcript field)
Custom destinations (BYOS — Bring Your Own Storage):
- Azure Blob Storage
- AWS S3
- Microsoft SharePoint / OneDrive (via Microsoft 365 connection)
- HTTPS webhook (sends to any URL — Power Automate, Azure Function, custom API, etc.)
---
Salesforce Transcript Push
Requirements: Salesforce integration connected (OAuth Connected App).
How to enable:
1. Go to Integrations → Salesforce → Configuration
2. Under Transcript Auto-Push, toggle Push transcript on resolve to ON
What happens: After every chat, Velaro searches Salesforce for a Contact matching the visitor's email. If found, a ContentNote is created and linked to that Contact. If no Contact is found, Velaro looks for a matching Lead. If neither is found, the push is skipped and logged.
What the note contains: Plain-text transcript with timestamps, agent name, visitor name, channel, and message history.
---
HubSpot Transcript Push
Requirements: HubSpot integration connected.
How to enable: Go to Integrations → HubSpot → Configuration and enable Auto-push transcript.
What happens: Creates a HubSpot Note on the Contact matching the visitor's email.
---
Dynamics 365 Transcript Push
Requirements: Dynamics 365 integration connected.
How to enable: Go to Integrations → Dynamics 365 → Configuration and enable Push Transcripts.
What happens: Creates a Note on the matching Contact or Lead in Dynamics.
---
NetSuite Transcript Push
Requirements: NetSuite integration connected with TBA OAuth.
How to enable: Go to Integrations → NetSuite → Configuration and enable Push Transcripts. Set the target custom field name (default: custentity_transcript).
What happens: Writes the transcript text to a custom field on the matching Customer record.
---
BYOS Webhook (Power Automate, Azure Functions, custom)
The most flexible option. Velaro POSTs the full JSON transcript to any HTTPS URL after each conversation resolves.
How to set up:
1. Go to Integrations → Transcript Storage → Add Destination
2. Choose HTTPS Webhook as the provider
3. Paste your endpoint URL
4. Optionally add a shared secret (sent as X-Velaro-Secret or a custom header)
5. Enable HMAC signing for cryptographic verification (X-Velaro-Signature: sha256=<hex>)
Verifying the signature (Node.js):
const crypto = require('crypto');
function isValid(req, secret) {
const expected = 'sha256=' + crypto.createHmac('sha256', secret)
.update(req.body).digest('hex');
const sig = req.headers['x-velaro-signature'] ?? '';
const a = Buffer.from(expected, 'utf8');
const b = Buffer.from(sig, 'utf8');
return a.length === b.length && crypto.timingSafeEqual(a, b);
}
---
Power Automate — the recommended no-code path
Power Automate connects your Velaro webhook to 1,000+ services without writing code. Use this when you want to:
- Write chat data to SQL Server or Azure SQL
- Post a summary to a Teams channel
- Create a row in SharePoint Lists or Dataverse
- Update a record in Salesforce, Dynamics, or ServiceNow
- Forward to Azure Blob or OneDrive
Setup:
1. In Power Automate, create a new flow with trigger: "When an HTTP request is received"
2. Copy the generated URL and paste it into Velaro → Transcript Storage → HTTPS Webhook URL
3. Add actions to forward the data to your destination
4. Optional: add a Response action returning JSON fields — the AI node can read those fields if you trigger the flow from a workflow
Why Power Automate instead of direct database access:
Your credentials never leave your systems. Velaro sends the transcript to your flow, and your flow handles the insert — you control what gets written, where, and with what permissions. This is more secure than sharing database credentials with any third-party service.
---
Azure Blob Storage
Requirements: Azure Storage account with a container. Create a connection string (Account Key or SAS).
How to set up:
1. Go to Integrations → Transcript Storage → Add Destination
2. Choose Azure Blob Storage
3. Paste your connection string, container name, and optional path prefix
File format: {prefix}/{year}/{month}/{day}/{conversationId}.json (or .txt)
---
AWS S3
Requirements: AWS IAM user with s3:PutObject permission on the target bucket.
How to set up:
1. Add destination, choose AWS S3
2. Enter your Access Key ID, Secret Access Key, bucket name, and region
---
SharePoint / OneDrive
Requirements: Microsoft 365 connection configured (via Integrations → Microsoft 365).
How to set up:
1. Add destination, choose SharePoint
2. Enter the SharePoint site URL and folder path
---
GDPR Erasure Propagation
Each BYOS destination has a Propagate Erasure toggle. When enabled, Velaro will delete the transcript file from that destination when a GDPR erasure request is processed for that contact. Default is off — you must explicitly opt in per destination.
---
What we do NOT support (and why)
Direct SQL INSERT: Velaro does not accept SQL Server credentials or execute queries against your database. The correct path is webhook → Power Automate → SQL connector (or webhook → Azure Function → SQL). You keep your credentials and we stay out of your database security perimeter.
NetSuite SuiteScript relay: We use the native NetSuite REST Record API with TBA OAuth. SuiteScript relays are fragile and break on sandbox refreshes. If you have a restlet from a previous integration, you can decommission it — the native API covers everything.
XML upload: No modern system requires XML push. Our JSON webhook payload covers all use cases.
---
Troubleshooting
Transcript not appearing in Salesforce:
- Confirm the visitor has an email address in the chat
- Confirm a Contact or Lead exists in Salesforce with that exact email
- Check the Activity Log tab on the Salesforce integration page for delivery events
- Check
/superadmin/logs/search?q=SalesforceTranscriptPushfor error details
Webhook not receiving data:
- Make sure your endpoint returns HTTP 2xx within 15 seconds
- Use the Test button in Transcript Storage settings to send a sample payload
- Check that HMAC verification uses the exact raw request bytes (not re-serialized JSON)
SharePoint upload failing:
- Confirm the Microsoft 365 connection has
Sites.ReadWrite.AllorFiles.ReadWrite.Allscope - Check that the folder path exists in the target site
Was this article helpful?