# Creating a CRM sample application for Zoom Phone and Zoom Contact Center ## Introduction Customer relationship management (CRM) tools are crucial for businesses, ensuring strategic processes, organization, and customer interaction. With Zoom technology, you can easily build a CRM for your business, integrating in phone calls, access to user data, secure login, and metric tracking. In this blog, we'll walk through creating a [CRM application](https://github.com/zoom/CRM-Sample) that can use either of two products; Zoom Phone or Zoom Contact Center. ## Product overview Both Zoom Phone and Zoom Contact Center allow developers to interact with external users via a VoIP system. With [Zoom Phone](https://www.zoom.com/en/products/voip-phone/?keyword=zoom%20phone&matchtype=e&network=g&device=c&zcid=13525&utm_source=google&utm_medium=cpc_semb&utm_campaign=SEMB|G|AMER|USA|Phone|EN|BT&gad_source=1&gad_campaignid=20494941535&gbraid=0AAAAADdIprluGQ1_VBvoSe-_mTqkzm4Z2&gclid=EAIaIQobChMIxdb96YH7jQMVMQWtBh1WIC2aEAAYASAAEgLUm_D_BwE), you can create applications with an integrated telephony system and additional communication channels such as chat and meetings. [Zoom Contact Center](https://www.zoom.com/en/products/contact-center/?utm_campaign=SEMB|G|AMER|USA|Phone|EN|BT&utm_source=google&utm_medium=cpc_semb&DeviceId=f9a778f9-da11-4b88-92d4-a6e9fc4f4fcf&SessionId=1750251219491), on the other hand, is for businesses looking to access an omnichannel customer support system. Once set up with a plan for whichever product you intend to use, you can head over to our [documentation site](/docs/) to get started with code integration. ## Application overview The application focused on in this blog has three main branches: - **Main** - this branch showcases a working application with hardcoded data to demonstrate components - **Zoom Phone** - this branch showcases how to build the same base application with phone features integrated via Zoom Phone Smart Embed and Zoom Phone APIs - **Zoom Contact Center (ZCC)** - this branch showcases the same application structure and features with integration via ZCC products ## Tech Stack - **Next.js –** React-based web framework - **NextAuth.js –** open-source authentication solution designed for Next.js applications - **React –** UI library - **TailwindCSS –** Utility-first CSS - **Zoom Smart Embed –** Zoom Phone & Contact Center interfaces - **Node.js API routes –** For backend token exchange and API access - **Admin-Level OAuth App –** Authorization mechanism for Zoom ## Authorization Zoom supports industry-standard OAuth 2.0 [rfc6749](https://datatracker.ietf.org/doc/html/rfc6749) flows to handle authorization and access tokens. So applications can request, refresh, and revoke tokens based on its type and authentication method. Tokens expire after a set time and may need renewal or refresh. In this application, we are using [NextAuth.js](https://next-auth.js.org/) which is a complete open-source authentication solution for Next.js applications. ## Smart Embed Smart Embed, available for both Zoom Phone and Zoom Contact Center, allows users to easily integrate a soft-phone experience into their application using either a `