Search packages, repositories and app categories

Package detailsv0.3.1

crisp

Connect with Crisp Chat, register a user to chat (or not) and render a chat widget.

AndroidiOS
30-day downloads
270
Likes
28
Pub points
130

Install package

flutter pub add crisp

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

Crisp is a Flutter package that enables integration with the Crisp Chat platform, allowing developers to connect users to live chat sessions. It supports user registration (with or without authentication) and provides a customizable chat widget for seamless in-app messaging. The package is compatible with both Android and iOS, making it ideal for cross-platform apps requiring real-time customer support or user engagement. With straightforward setup via pub.dev, it simplifies embedding Crisp’s chat functionality into Flutter applications.

Use cases

  • In-app customer support
  • User engagement through live chat
  • Real-time messaging in mobile apps
  • Support ticketing integration
  • Customer service dashboards

Key features

  • Easy integration with Crisp Chat
  • User session management
  • Customizable chat widget
  • Cross-platform support (Android & iOS)
  • Lightweight and minimal configuration

Suitable for

  • Mobile apps needing live chat
  • Customer support platforms
  • E-commerce apps
  • SaaS applications
  • Apps with user-facing help systems

Considerations

  • Requires a Crisp account
  • Internet connection needed for chat
  • Privacy compliance considerations
  • Limited customization beyond provided widgets
  • Dependent on Crisp's API stability

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

Flutter Crisp

pub package License: MIT Twitter: oilunabr

Connect with Crisp Chat, register a user to chat (or not) and render a chat widget.

Tested on Android and iOS.

Required setup

Min SDK version:

minSdkVersion 17

AndroidManifest.xml necessary changes:

    <application
        android:usesCleartextTraffic="true">
        ...
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
        <provider
            android:name="com.pichillilorenzo.flutter_inappwebview.InAppWebViewFileProvider"
            android:authorities="${applicationId}.flutter_inappwebview.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths" />
        </provider>
    </application>

For details check the example folder.

How to use

Initialize with:

  • Your website id (https://app.crisp.chat/website/%5BWEBISTE_ID%5D/inbox/);
  • An optional locale.
  CrispMain crispMain;

  @override
  void initState() {
    super.initState();

    crispMain = CrispMain(
      websiteId: 'WEBSITE_ID',
      locale: 'pt-br',
    );

    crispMain.register(
      user: CrispUser(
        email: "example@provider.com",
        avatar: 'https://avatars2.githubusercontent.com/u/16270189?s=200&v=4',
        nickname: "João Cardoso",
        phone: "5511987654321",
      ),
    );

    crispMain.setMessage("Hello world");

    crispMain.setSessionData({
      "order_id": "111",
      "app_version": "0.1.1",
    });
  }

Then use with:

  • Optional clear cache.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Your brand'),
        ),
        body: CrispView(
          crispMain: crispMain,
          clearCache: false,
        ),
      ),
    );
  }

Additional parameters

Chat user token with userToken

crispMain.initialize(
  websiteId: 'WEBSITE_ID',
  locale: 'pt-br',
  userToken: '<USERTOKENHERE>',
);

Verification token with verificationCode (User Verification)

crispMain.register(
  user: CrispUser(
    email: "example@provider.com",
    avatar: 'https://avatars2.githubusercontent.com/u/16270189?s=200&v=4',
    nickname: "João Cardoso",
    phone: "5511987654321",
    verificationCode: "<HMAC256CODEHERE>",
  ),
);

Custom data via setSessionData (Set custom data)

crispMain.setSessionData({
  "order_id": "111",
  "app_version": "0.1.1",
});

Custom onLinkPressed event

CrispView(
  crispMain: crispMain,
  clearCache: true,
  onLinkPressed: (url) {
    if (url.contains('example.com')) {
      loadDeeplinkWithUrl(url: url);
    } else
      launch(url);
  },
),

Categories

Dependencies

Dependency list 2 items

Source repository

Projects using this package

No data available yet.