Concepts
Chatwoot is an open-source customer communication platform that helps companies engage their customers on their website, Facebook page, Twitter, Whatsapp, SMS, email, etc. It is an open-source alternative to Intercom, Zendesk, Salesforce Service Cloud etc. Connect your customer conversation channels and converse with your customers from a single place.
Features
Chatwoot gives an integrated view of conversations happening in different communication channels.
It supports the following conversation channels:
- Website: Talk to your customers using our live chat widget and make use of our SDK to identify a user and provide contextual support.
- Facebook: Connect your Facebook pages and start replying to the direct messages to your page.
- Twitter: Connect your Twitter profiles and reply to direct messages or the tweets where you are mentioned.
- Whatsapp: Connect your Whatsapp business account and manage the conversation in Chatwoot
- SMS: Connect your Twilio SMS account and reply to the SMS queries in Chatwoot
- API Channel: Build custom communication channels using our API channel.
- Email (beta): Forward all your email queries to Chatwoot and view it in our integrated dashboard.
Other features include:
- Multi-brand inboxes: Manage multiple brands or pages using a single dashboard.
- Private notes: Inter team communication is possible using private notes in a conversation.
- Canned responses (Saved replies): Improve the response rate by adding saved replies for frequently asked questions.
- Conversation Labels: Use conversation labelling to create custom workflows.
- Auto assignment: Chatwoot intelligently assigns a ticket to the agents who have access to the inbox depending on their availability and load.
- Conversation continuity: If the user has provided an email address through the chat widget, Chatwoot would send an email to the customer under the agent name so that the user can continue the conversation over the email.
- Multi-lingual support: Chatwoot supports 10+ languages.
- Powerful API & Webhooks: Extend the capability of the software using Chatwoot’s webhooks and APIs.
- Integrations: Chatwoot natively integrates with Slack right now. Manage your conversations in Slack without logging into the dashboard.
Documentation
Detailed documentation is available at www.chatwoot.com/help-center.
Installation with docker-compose
Here is the guide : Installation with Docker
You can install it with docker-compose and change the environment variables.
Here is the docker-compose.yml and the .env .
# docker-compose.yml version: '3' services: base: &base image: chatwoot/chatwoot:develop env_file: .env ## Change this file for customized env variables stdin_open: true # docker run -i tty: true # docker run -t rails: <<: *base depends_on: - postgres - redis ports: - 3000:3000 environment: - NODE_ENV=production - RAILS_ENV=production entrypoint: docker/entrypoints/rails.sh command: ['bundle', 'exec', 'rails', 's', '-p', '3000', '-b', '0.0.0.0'] sidekiq: <<: *base depends_on: - postgres - redis environment: - NODE_ENV=production - RAILS_ENV=production command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml'] postgres: image: postgres:12 restart: always ports: - '5432:5432' volumes: - /data/postgres:/var/lib/postgresql/data environment: - POSTGRES_DB=chatwoot - POSTGRES_USER=postgres # Please provide your own password. - POSTGRES_PASSWORD=chatwoot redis: image: redis:alpine restart: always command: ["sh", "-c", "redis-server --requirepass \"$REDIS_PASSWORD\""] env_file: .env ## Change this file for customized env variables volumes: - /data/redis:/data ports: - '6379:6379'
# .env # Used to verify the integrity of signed cookies. so ensure a secure value is set SECRET_KEY_BASE=replace_with_lengthy_secure_hex # Replace with the URL you are planning to use for your app FRONTEND_URL=http://0.0.0.0:3000 # If the variable is set, all non-authenticated pages would fallback to the default locale. # Whenever a new account is created, the default language will be DEFAULT_LOCALE instead of en # DEFAULT_LOCALE=en # If you plan to use CDN for your assets, set Asset CDN Host ASSET_CDN_HOST= # Force all access to the app over SSL, default is set to false FORCE_SSL=false # This lets you control new sign ups on your chatwoot installation # true : default option, allows sign ups # false : disables all the end points related to sign ups # api_only: disables the UI for signup, but you can create sign ups via the account apis ENABLE_ACCOUNT_SIGNUP=false # Redis config REDIS_URL=redis://redis:6379 # If you are using docker-compose, set this variable's value to be any string, # which will be the password for the redis service running inside the docker-compose # to make it secure REDIS_PASSWORD=chatwoot # Redis Sentinel can be used by passing list of sentinel host and ports e,g. sentinel_host1:port1,sentinel_host2:port2 REDIS_SENTINELS= # Redis sentinel master name is required when using sentinel, default value is "mymaster". # You can find list of master using "SENTINEL masters" command REDIS_SENTINEL_MASTER_NAME= # Postgres Database config variables POSTGRES_HOST=postgres POSTGRES_USERNAME=postgres POSTGRES_PASSWORD=chatwoot RAILS_ENV=development RAILS_MAX_THREADS=5 # The email from which all outgoing emails are sent # could user either `email@yourdomain.com` or `BrandName <email@yourdomain.com>` MAILER_SENDER_EMAIL=Chatwoot <accounts@chatwoot.com> #SMTP domain key is set up for HELO checking SMTP_DOMAIN=chatwoot.com # the default value is set "mailhog" and is used by docker-compose for development environments, # Set the value as "localhost" or your SMTP address in other environments SMTP_ADDRESS=mailhog SMTP_PORT=1025 SMTP_USERNAME= SMTP_PASSWORD= # plain,login,cram_md5 SMTP_AUTHENTICATION= SMTP_ENABLE_STARTTLS_AUTO=true # Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert', see http://api.rubyonrails.org/classes/ActionMailer/Base.html SMTP_OPENSSL_VERIFY_MODE=peer # Mail Incoming # This is the domain set for the reply emails when conversation continuity is enabled MAILER_INBOUND_EMAIL_DOMAIN= # Set this to appropriate ingress channel with regards to incoming emails # Possible values are : # relay for Exim, Postfix, Qmail # mailgun for Mailgun # mandrill for Mandrill # postmark for Postmark # sendgrid for Sendgrid RAILS_INBOUND_EMAIL_SERVICE= # Use one of the following based on the email ingress service # Ref: https://edgeguides.rubyonrails.org/action_mailbox_basics.html RAILS_INBOUND_EMAIL_PASSWORD= MAILGUN_INGRESS_SIGNING_KEY= MANDRILL_INGRESS_API_KEY= # Storage ACTIVE_STORAGE_SERVICE=local # Amazon S3 # documentation: https://www.chatwoot.com/docs/configuring-s3-bucket-as-cloud-storage S3_BUCKET_NAME= AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_REGION= # Sentry SENTRY_DSN= # Log settings # Disable if you want to write logs to a file RAILS_LOG_TO_STDOUT=true LOG_LEVEL=info LOG_SIZE=500 ### This environment variables are only required if you are setting up social media channels # Facebook # documentation: https://www.chatwoot.com/docs/facebook-setup FB_VERIFY_TOKEN= FB_APP_SECRET= FB_APP_ID= # Twitter # documentation: https://www.chatwoot.com/docs/twitter-app-setup TWITTER_APP_ID= TWITTER_CONSUMER_KEY= TWITTER_CONSUMER_SECRET= TWITTER_ENVIRONMENT= #slack integration SLACK_CLIENT_ID= SLACK_CLIENT_SECRET= ### Change this env variable only if you are using a custom build mobile app ## Mobile app env variables IOS_APP_ID=6C953F3RX2.com.chatwoot.app ### Smart App Banner # https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/PromotingAppswithAppBanners/PromotingAppswithAppBanners.html # You can find your app-id in https://itunesconnect.apple.com #IOS_APP_IDENTIFIER=1495796682 ## Push Notification ## generate a new key value here : https://d3v.one/vapid-key-generator/ # VAPID_PUBLIC_KEY= # VAPID_PRIVATE_KEY= # # for mobile apps # FCM_SERVER_KEY= ## Bot Customizations USE_INBOX_AVATAR_FOR_BOT=true ## IP look up configuration ## ref https://github.com/alexreisner/geocoder/blob/master/README_API_GUIDE.md ## works only on accounts with ip look up feature enabled # IP_LOOKUP_SERVICE=geoip2 # maxmindb api key to use geoip2 service # IP_LOOKUP_API_KEY= ## Development Only Config # if you want to use letter_opener for local emails # LETTER_OPENER=true
Prepare the database by running the migrations.
docker-compose run --rm rails bundle exec rails db:chatwoot_prepare
Get the service up and running.
docker-compose up -d
Your Chatwoot installation should be accessible with http://localhost:3000
Top comments (1)
Chatwoot is really Awesome Self hosted Solution for everyone