How can we help you?

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=SalesforceTranscriptPush for 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.All or Files.ReadWrite.All scope
  • Check that the folder path exists in the target site
Share: Email

Was this article helpful?