Divjoy

Create a React app with Intercom

a dev guide by Divjoy ✨

About this guide

This development guide walks you through everything you need to do to build a high-quality React app integrated with Intercom. Check out the tasks below to get started. To save time, you can also use our boilerplate, which gives you a complete React codebase with all of these tasks done for you. Okay, let's dive in!

Tasks

  • ⚛️Setup your React app

    Setup a React app using npx create-react-app and routing using React Router. There are many ways you can structure your app, but a common setup is to have an App component that defines top-level routes, with each route component imported from the /pages directory. The rest of your components should be located in your /components directory. You can then run your app locally with the npm run start command.
  • 💬Create a component that adds the Crisp script

    Create a custom Chat component that handles adding the Intercom script to the head of your web app. You'll want to render this component in your App component so that it's included on all pages. Internally this component should execute the Intercom chat script within useEffect (assuming you're using functional components) so that it's added to your web app head on mount.
  • 🛣Update Intercom on route change

    User navigation with React Router won't automatically update Intercom with the user's current page. To do this you'll need to listen to route changes using browserHistory.listen(callback) and then within your callback function execute window.Intercom("update") with the current timestamp. As explained in the Intercom docs, updating Intercom with a new value (current timestamp) initiates a ping to Intercom and forces it to pick up the user's current URL.
  • 🙋Update Intercom with user data

    If using authentication then you'll want to update Intercom with the authenticated user's email and name. If you're utilizing an authentication hook, such as useAuth, to listen to the user's authentication state then you can simple fire off a useEffect whenever the user object changes. The effect should update the email and name fields using window.Intercom("update"), as explained further in the Intercom docs. This method ensures that user data gets populated after signin as well as when the user changes their info within your app.

Get the code

You can get the code for this guide with our React and Intercom Boilerplate. You'll get a complete React codebase with Intercom integration, all the tasks listed above done for you, and a responsive multi-page template. It should save you about two weeks of development time.

127 downloads today

Related Guides