Chatlayer Documentation
Get in touchAbout Chatlayer
  • Welcome
  • What's new
  • Send feedback
  • start quickly
    • Leadzy tutorial
      • 0. Introduction
      • 1. New bot, new block
      • 2. Understand your users
      • 3. Collect and display user input
      • 4. Steer the conversation with Conditions
      • 5. Empower your bot with Actions
      • 6. Set up a channel and publish your bot
    • Templates
      • Banking
      • E-Commerce Returns
      • E-Bike Shop
      • E-Scooter Support
      • Feedback
      • Find Nearest Location
      • GPT
      • 🆕Gym
      • Job applications
      • Knowledge base AI template
      • Lead generation
      • 🆕NPS
      • Restaurant
      • Retail
  • navigation
    • Analytics
      • Dashboard
      • Customers
      • Conversations
      • User flow
      • Intents
      • 🆕Funnels [Beta]
    • Bot builder
      • Flows
        • Canvas functionalities
        • Collaborate with team members
        • Manage your flows
        • 🆕[Beta] Export and import flows
      • Bot dialogs view
      • Translations
      • Events
    • NLP
      • Dashboard
      • Intents
      • Expressions
      • Entities
      • Train
      • NLP settings
      • Improve
    • Knowledge base AI
      • Add content to your KBAI
      • Build your KBAI flow
      • Use your KBAI source URL in a button
      • Use tags to limit your KBAI content
      • 🆕Use Tables to store your KBAI questions
      • 🆕Manage handover where KBAI is unsatisfactory
    • History
      • Conversations
      • Execution logs
      • Versions
    • Channels
    • Tables
      • Create a table with records
      • Column types
      • Operate on your records
        • Insert record
        • Update record
        • Retrieve record
        • Delete record
      • API
    • Settings
      • Bot settings
      • Offloading
      • Variables
      • Voice
      • Import/Export
  • build your bot
    • Conversation design
      • Plan your bot
      • Conversation design workflow
    • Flow logic
      • Blocks
        • Message
        • Condition
        • Collect input
        • Action
      • Go-to connections
    • 🆕Emulator
    • Tips & best practices
      • Route your flow depending on the time
      • Improve the Not understood block
        • How to create better not understood messages
        • Not understood counter
        • Not understood Google search
      • Go to previous block
      • Recognizing a returning user
      • Skip introduction message
      • Route your flow depending on the channel
      • Reuse flows
      • Connect two bots to each other
  • understand users
    • Natural language processing (NLP)
      • Basic NLP concepts
      • Detect information with entities
        • Match entities
        • Contextual entities
        • System entities
        • Composite entities
      • NLP best practices
        • Word order and diversity of expressions
      • AI intent booster
      • Train your NLP
      • Context
      • NLP import & export
      • Sentiment analysis
    • Languages
      • Supported languages
      • Make your bot multilingual
      • Change language within the conversation
  • set up channels
    • Add a channel to your bot
    • All channels
      • 🚨Facebook Messenger [Deprecated soon]
        • Facebook Admin Removal
        • Facebook Webview Whitelisting
        • Facebook Messenger API updates for Europe
      • 🚨Google Assistant [Deprecated soon]
      • Webhook
      • Web
        • 🚨Web V1 [Deprecated]
          • Customize web widget
          • Live example web widget
        • 🆕Web V2
          • 🆕From Web V1 to V2
          • 🆕Web V2 methods and options
    • Sinch Conversation API
      • Configure your Sinch Conversation API
      • 🆕 Make the most of RCS with Carousels
      • WhatsApp Business API
  • integrate & code
    • API calls
      • Configure your API integration
      • Advanced API features
      • V1 API Reference
      • Custom integrations 101
    • Code editor
      • [Example] Sending data to Airtable (POST)
      • [Example] Retrieving data from Airtable (GET)
      • [Example] Making SOAP requests
    • App integrations
      • Airtable
      • Freshdesk
      • Freshdesk Messaging
      • 🆕Gmail
      • Intercom
      • Mailgun
      • OpenAI: GPT-3, ChatGPT and GPT-4
      • Salesforce
      • 🆕Slack
      • Topdesk
      • Zendesk Support
      • Zendesk Sunshine (beta)
    • 🆕Expression syntax
    • Human handover & live chat
      • Sinch Contact Pro
      • #Interact
      • Genesys Cloud
      • Offloading Webhook
      • Salesforce Service Cloud
      • Sparkcentral by Hootsuite
      • Zendesk Chat
    • Chatlayer messages specifications
  • Publish
    • Publish your bot
      • Publish a flow
  • Analyze & maintain
    • Analytics definitions
    • Data retention
    • Maintenance
    • Session
    • Track events for analytics
  • VOICE
    • 🆕Send bot response as audio
    • Voicebots
      • Create a voicebot
      • Voicebot-specific actions
      • Test your voicebot
      • From chat to voice
  • access & support
    • Identity & Access
      • Single Sign-On (SAML SSO)
    • Billing & subscription
    • Get in touch
    • Chatlayer glossary
    • SaaS Regions & IP Ranges
    • Status
    • Debug your bot
      • No correct response
      • Collect input not working
      • Video isn't working
Powered by GitBook
On this page
  • Retrieving Sparkcentral API credentials
  • Configure offloading
  • Retrieve user details from Sparkcentral

Was this helpful?

  1. integrate & code
  2. Human handover & live chat

Sparkcentral by Hootsuite

PreviousSalesforce Service CloudNextZendesk Chat

Last updated 4 months ago

Was this helpful?

Sparkcentral by Hootsuite allows you to manage all your asynchronous messaging channels with human and virtual customer service agents.

Retrieving Sparkcentral API credentials

The first step to integrate Sparkcentral with Chatlayer.ai is to retrieve API Credentials from Sparkcentral.

  • Go to your Sparkcentral dashboard and open the Settings page.

  • Once you’re on the settings page, select the Integrations tab in the sidebar.

  • To retrieve your Sparkcentral API credentials click the Generate API Keys button in the top right corner of the screen.

  • Enter a name for your API credentials and click the Save button. A new entry will now be visible in the Integrations page containing your clientId and clientSecret. Keep these credentials open and go back to Chatlayer.ai to start the Sparkcentral configuration.

  • Go to the channels page in Chatlayer. Click the plus icon next to Sparkcentral to start the channel configuration.

  • Choose your region: US or EU

  • Enter your clientId and clientSecret in the form and press save.

  • After saving, the webhook URL for your newly created channel is visible. Copy this Webhook URL and go back to sparkcentral.

  • Return to your Sparkcentral dashboard and open the Settings page. Open the Virtual Agents tab from the sidebar on the settings page and click the Add Custom Virtual Agent button in the top right corner. This will open a popup allowing you to configure some details for the Custom Virtual Agent.

  • Enter the webhook URL for your virtual Chatlayer.ai agent under the section Custom Virtual Agents Configuration.

  • Once the configuration is complete, copy the Shared Secret under Custom Virtual Agent Configuration and save the new Custom Virtual Agent.

  • Go back to Chatlayer.ai, enter the shared webhook secret and save the channel configuration.

  • Edit the virtual agent configuration of Sparkcentral to enable the channels you want your bot to be active on.

Configure offloading

To transfer the conversation from the chatbot to a live agent in Sparkcentral, you can create an Action block containing a "send to offload provider" plugin. Configure the Sparkcentral offload provider.

Once this Action is triggered the conversation will be added to the Sparkcentral agent queue.

Retrieve user details from Sparkcentral

You can find more information from user sessions connected to Sparkcentral channel under the following:

internal.channelDetails

// export interface SparkcentralSessionDetails {
  channelId: string;
  medium?: string;
  contactProfile?: {
    id: string;
    mediumContactProfileId: string;
    primaryIdentifier: string;
    secondaryIdentifier: string;
    pictureUrl: string;
    vip: boolean;
  };
  contactAttributes?: { attribute: string; value: string; source: string }[];
}

An example for the internal.channelDetails can be as follows:

{
 channelId: "12345",
  medium: "twit".
  contactProfile: {
    id: "0-01f116a7f9c-000-b5d575cb,
    mediumContactProfileId: "cd067e88519ab323b15c9944"
    primaryIdentifier: "user_email@test.com"
    secondaryIdentifier: "user_email@test.com"
    pictureUrl: "https://avatar_url.com";
    vip: false;
  };
  "contactAttributes": [
    {
      "attribute": "fb-page-title",
      "value": "In-Web Messaging Demo",
      "source": "MEDIUM"
    },
    {
      "attribute": "fb-page-url",
      "value": "https://messenger-demoapp-dev/#JansDevSmoochChannel4",
      "source": "MEDIUM"
    },
    {
      "attribute": "fb-browser-language",
      "value": "en-US",
      "source": "MEDIUM"
    },
    {
      "attribute": "fb-domain",
      "value": "messenger-demoapp-dev",
      "source": "MEDIUM"
    },
    {
      "attribute": "fb-sdk-version",
      "value": "1.14.2",
      "source": "MEDIUM"
    }
  ]
}

If you want to retrieve the profile url of the user then you can retrieve it by internal.channelDetails.contactProfile.profileUrl