ChatSasa Live-Chat SDK

Welcome to the ChatSasa Flutter SDK. This SDK allows you to easily integrate ChatSasa's live chat functionality into your Flutter mobile applications.

Getting started

For you to start using Chatsasa Live chat SDK you need an admin/agent account and an organisation for manning the incoming messages.

Here are the steps to get you started.

  • Sign up in Chatsasa.
  • Create an Organisation.
  • Create a Customer Support Widget.
  • Create a Customer Support Channel.
  • Link a Customer Support Channel to a Widget (Go to your widget and click Edit).
  • Copy and pass the widgetUUID to the Flutter SDK.

Add dependency

Add this to your package's pubspec.yaml file, use the latest version.

dependencies:
 chatsasa_livechat: ^latest_version

You should then run flutter packages get

Changelog

Check out the changelog on pub.dev to see the latest changes in the package.

Initialization

Initialize the ChatSasa SDK in your main.dart file:

import 'package:flutter/material.dart';
import 'package:chatsasa_flutter_sdk/chatsasa_flutter_sdk.dart';

Future<void> main() async {
  // initilize the sdk
  WidgetsFlutterBinding.ensureInitialized();
  var chatSDK = ChatSasaLiveChat();
  chatSDK.initSDK();
  runApp(const MyApp());
}

Usage

To launch the chat widget, use the following code in your main widget file:

You need to pass the user details under the AppUserModel. UserIdentifier field is mandatory. Launch the Chat Widget by providing the widgetUUID and the appUserModel.

import 'package:chatsasa_livechat/chatsasa_livechat.dart';
import 'package:chatsasa_livechat/export.dart';
import 'package:flutter/material.dart';

Future<void> main() async {
  // initilize the sdk
  WidgetsFlutterBinding.ensureInitialized();
  var chatSDK = ChatSasaLiveChat();
  chatSDK.initSDK();
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: "ChatSasa Live-Chat Example",
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({
    super.key,
  });

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    // Create a chat user
    // userIdentifier is a required field
    var sampleAppUser = AppUserModel(
      name: 'user',
      email: 'user@gmail.com',
      userIdentifier:
          'user@gmail.com', // userIdentifier is anything you use to uniquely identify your users on ChatSasa API
    );
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.blue,
        title: const Text(
          "ChatSasa Live-Chat Example",
          style: TextStyle(color: Colors.white),
        ),
      ),
      body: Center(
        child: Container(),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          Navigator.push(
              context,
              MaterialPageRoute(
                  builder: (_) => LiveChatChannels(
                      widgetUUID:
                          "YOUR_WIDGET_UUID", // Replace with your widget UUID
                      appUserModel: sampleAppUser)));
        },
        tooltip: 'launch live chat',
        child: const Icon(Icons.chat_bubble_outline),
      ),
    );
  }
}