CRM Solution

CRM: Customer Relationship Management

Do you have a business plan?

 

CRM is a tool for the management of customer relationships. It is very useful in any business, from manufacturing goods to those that provide services as it allows to plan a business strategy based on clients. This tools become essential in global markets like IT services where retain a customer is more important than winning new ones.

This tool is an open system data (front office) that gives us the opportunity to exchange information with customers. To create records which allow us to see the concept of value that the customer has with the product, to focus on the real needs processes that give rise to the application and delete processes that result in an increase in the price of the product without increasing its value. We can also anticipate new requirements and provide better after-sales services.

The use of a CRM system often fails or doesn’t give the desired results because its implementation is only limited to software installation without studying the context of the company, nor provide the necessary knowledge to its employees. A CRM system should be implemented only after studying the current relationship with customers and defining the new one that the company  wants to reach. Once we know that we will have a clearer picture of which systems we will need, which procedures will need to be standardized and on which topics will be needed to train the staff of the organization.

The CRM software was initially developed by payment and large companies. Recently, however, began to emerge such as “open source”, ie free and open source. This brings with it the following advantages: low cost and the possibility of changing them to the needs of each company.

MyPerfectColor

Since 2009, our company has been providing software development support to MyPerfectColor, enhancing technical innovations and improving the operational efficiency of their business.

MyPerfectColor specializes in selling paints and tools, offering a unique color matching service for over 200,000 colors across more than 100 paint brands through their website. Customers can select lighter or darker versions of any color, with all colors available in various paint types, from samples to gallons. You can visit the website at https://www.myperfectcolor.com.

This custom-built website was developed by Serfe using a PHP framework created specifically for MyPerfectColor back in 2009, incorporating Ajax and jQuery to enhance user interactions. The online store includes a "My Cart" feature that allows users to easily manage and adjust their selected products.

We created a comprehensive ERP solution into the back office, developing custom modules to manage customers, orders, and shipments efficiently. On the frontend, the platform functions as a fully-featured e-commerce site, delivering a seamless shopping experience for purchasing custom paint and utilizing color-matching services. The site’s administration panel provides all the essential tools the company needs to operate on a daily basis. Working closely with the owner, we tailored an internal order management system, developed financial tools for accurate invoicing, refunds, and tax collection, and built custom modules from scratch for business intelligence. These modules facilitate data analysis, metric collection, and report generation, empowering decision-makers with valuable insights.

The system seamlessly calculates shipping costs via ShipperHQ and FedEx™ WebService integration and ensures secure payments with Stripe integration.

In addition, we integrated Cloudflare to bolster the site's security and optimize its performance.

Custom Web Solution

At the client’s request, we developed a custom MVC framework based on with key features such as dispatchers, security layers, session handlers, and plugins. This provides a solid foundation for the website’s functionality and scalability.

The admin panel grants MyPerfectColor complete control over their site, enabling efficient management of users, products, colors, payments, and orders. This robust system includes an advanced color management interface and an order management panel for tracking purchases, overseeing payments, and generating shipping labels via the FedEx Web Service. Additionally, the admin panel offers a dashboard that provides valuable sales statistics and business insights.

Between February 2019 and July 2019, we completed the first major system upgrade, integrating Bootstrap v4, Gulp, and SCSS into the framework’s template. This upgrade allowed us to optimize the product pages and streamline the checkout workflow, significantly enhancing the user experience across the entire purchasing process. Following this update, the order conversion rate improved remarkably.

Migration from Authorize.net to Stripe

In August 2019 we've implemented a migration in the payment gateway. Due to Authorize.net limitations and the advantages that Stripe offered to our client, we planned and executed the migration for the online payment method. Within the normal workflow the ecommerce allows you paying with debit or credit cards, by integrating Stripe we also allow users to associate these cards with their MyPerfectColor account so that in future orders they should only choose the saved card in a drop-down and proceed with a click.

Besides a list of extra options in the administrator panel, an admin user is also able to assigning and removing credit cards associated with customers. Another functionality requested by our client was a new feature for making asynchronous payments, an user can generate an order without paying, after MyPerfectColor confirms the final cost of the order, the staff sends an email to the customer including the updated amount and a button to proceed and pay inside the platform.

Integration of Taxes and Invoices with Stripe

In October 2023, we implemented a comprehensive solution to optimize tax and payment management for our client, who operates in multiple U.S. states. We automated tax calculations by integrating Stripe Invoices, allowing for the automatic determination of state-specific taxes based on the client's information. This eliminated the need for manual calculations and ensured billing accuracy. Additionally, we connected Stripe with TaxJar to automate tax report generation, significantly reducing the client's workload and minimizing the risk of errors.

We also implemented a flexible payment management system, enabling the application of credit notes for price and tax adjustments, both from the admin panel and through the Stripe platform. To maintain real-time synchronization of payment information between both platforms, we used Stripe webhooks, thus ensuring data accuracy and integrity.

To offer a secure and personalized payment experience, we developed a custom payment form using Stripe Elements. This solution not only guarantees the protection of customer data but also allows the payment process to be tailored to the client's specific needs, thereby reinforcing their brand identity.

Stripe Products Used:

  • Stripe Payments Stripe Payments: Payment processing, including charges and invoices.
  • Stripe Billing Stripe Billing
  • Stripe Elements Stripe Elements: Creation of custom payment forms integrated into the custom template.
  • Stripe Tax Stripe Tax: Automate taxes on all their transactions.
  • Stripe Radar Stripe Radar: Fraudulent payment detection.

Ongoing support and optimization

We migrated from Bootstrap 4 to Bootstrap 5, optimizing the loading of scripts by separating them for each page and importing only what is necessary. The gulp task handles generating the final minified JS. We integrated Invoices using Stripe Payments, allowing for the automatic calculation of taxes for each purchase and the easy generation of tax reports through TaxJar. Additionally, we have been using Radar for some time to manually flag orders that may present a payment risk, facilitating their evaluation.

We implemented a task queue using pm2 and Express, allowing background tasks to be executed when certain events occur, such as the creation or update of a customer, recording customer information in Hubspot CRM. We maintain and support Python scripts from the task queue, which also automate tasks such as sending overdue payment emails and syncing with Hubspot.

To ensure quality, we have a set of automated tests implemented with CodeceptJS that validates the most common checkout flows and ensures proper synchronization with Stripe. Additionally, we have implemented ShipperHQ for the past couple of years to manage shipping methods more flexibly, allowing the client to easily manage rules, package sizes, product groups, and available shipping methods without needing to update the platform.

It is worth noting that we have managed to keep the system up to date, running on modern technologies like Bootstrap v5.3 and PHP 8.2, achieving good metrics in Core Vital (pagespeed).

Core Vital Optimization

We are also working on migrating the new order management admin panel, with a more modern interface that meets the company's current needs, progressively incorporating new features such as improved management of formulas and their components for each color. Within the production line, each employee involved in the production of customized paints has the option to use an iPad that will load this new management panel. In this admin system, we developed a template based on React 17 and MUI, with a websocket connecting the legacy system to manage real-time updates of orders and items.

Finally, we have automated some tasks using Python scripts that connect with Zapier for certain direct integrations with the database. Regarding the Python scripts, we have also collaborated with package updates, security enhancements, and performance improvements.

Apparel ERP

Capture and Ship is a custom web application which includes very specific features for garment printing industry that focus on productivity, effectiveness and efficiency.

Inception phase

At the beginning of this project the partners of this company, whom were thinking and envisioning this platform, came to us wondering if we would be able to help them with this project. Of course our answer was “yes”. That is how on July 2014 we started working on the inception phase together trying to keep a record for every idea they had, defining high-level requirements and start designing a rough system architecture and database structure. After weeks of work, we reach out the first requirement document with top priority requirements to start working on our first development phase, at that moment we knew it would be a very big project with lot of work to do.

Development phase

We used to work with an agile approach for all our project, for sure this would not be an exception, we started working on milestones with main features by implementing the core of this platform. During firsts month we realized that innovation and creativity would be top priority for most of the process, that's why we integrated trending technologies for this job, not just HTML5, CSS3, jQuery Bootstrap or FontAwesome as we do since a few years ago but also AngularJS, npm, Bower, Grunt as well as automatic tests using Codeception and deploying environment using GIT to speed up release process.

During our development, we had to learn about lots of business rules, specific tools and printing process in order to have the best understanding to deliver the best solution to manage campaign, apparel products, artworks jobs, DTG printing process and delivery of finished products for every client.

The web application provides to administrators the ability to manage users, clients accounts, providers accounts, sales orders, purchase orders and transaction integrating great features to every UI. There are more than 8 users levels, each one with different permission over the system to execute specific actions depending on the status of the printing job. During the production status, the system deploy sub-tasks for administrators and printer provider users where they can order products to suppliers (e.g. t-shirts), monitor artwork files (design providers) and confirm when products are ready to be shipped. In the Orders detail page, administrators are also able to handle payments, confirm payments methods and shipping methods using major companies, they can even include tracking code for each shipment.

Customers can send campaigns and manage different seasons for their products, create new purchase orders for products and sizes, manage multiple users under their customer's account,, for example if you own a company and you need T-shirts for your employees for sure you need to reorder more products time to time.

Additionally, in order to complete and implement the ERP module for this platform we integrated product stock management, internal eCommerce module, accounting module based on the double entry bookkeeping, reports, charts and statistics using Google Charts.

In one of the latest stages, we've implemented an API that allows other applications to connect to this main Capture app in order to create and manage jobs automatically. We've developed a custom CakePHP plugin from scratch for managing external connections, validating and authenticating users through OAuth 2.0. Once the connection is validated, the client app must send a REST request to create printing jobs or monitor progress. All endpoints are specified in the online documentation we have supplied, which was generated automatically from our source code.

Technologies

  • CakePHP: PHP frameworks based on MVC pattern.
  • MySQL: We defined the database using InnoDB engine for integrity on required tables and MyISAM for faster queries to non-relational tables.
  • Boostrap + FontAwesome + GoogleFonts: this is the greatest framework to build fully cross-platform and mobile-friendly UI.
  • AngularJS: Really MVC framework fully coded on javascript, which allows us to implement dynamic UI, it also helps to manage data in real time much quicker, reducing needs to connect to the server for processing, fully mobile-friendly, cross-platform and the most important it's open source!
  • MongoDB 2.4: NoSQL database that allows greater amount of data queries in less time than a SQL database.
  • Elastic Search 1.5.2 / Lucene v4.10.4: internal search engine which offers several functionalities to perform complex search based on a keyword and returns almost instant results.
  • npm, Bower and Grunt: great technologies that make things easier to manage packages installed on our development, test and even production environments. It allows you to install and handle Less, FontAwesome, Bootrstrap, jQuery and others.
  • OAuth 2.0 is the next evolution of the OAuth protocol which was originally created in late 2006. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones

 

Let's Plum

Let's Plum is a leading company that provides graphic design services to offer a complete solution, from illustration to vectorization. Thus, the continued growth of the company, employees and freelancer it was strongly necessary to develop a very specific management system for their more than 600 artwork jobs they need to deliver every day.

Inception Phase

This first stage was performed with our client to collect all the system requirements with our analysts. We made several meetings in our office in order to clarify all details in order to have enough information to provide to our team. After we reached a good understanding of all our client's needs, they were documented in order to start designing the purposed solution.

Development and Technologies

In the development stage, every functional and non-functional requirement has been implemented as designed in the analysis stage. The core of this application is CakePHP framework combined with AngularJS+Bootstrap for dynamic templates and web design. We installed several jQuery plugins that allowed us to validate forms and data types, upload multiple files, drag images to became preview, also we combined several NodeJS, Bower and Grunt components that provided great features when implementing our solution. The project was completed and we released first stable version on July 2015. Accordingly, we continue working on improvements, system optimizations and enhancements, new features and maintenance in both the system and the server.

The server was installed from scratch, our server admin installed latest CentOS version and necessary dependencies to configure Apache, MySQL, MongoDB, Elastic Search among other modules. We also integrated Dropbox into the web backend application. As a result, designers are able to share their finished artwork files as well as a customer is able to download it by clicking a link on the notification email they received when artwork job is done. In Dropbox, they can upload a zip file (with specific folder format) and the website will scan this folder from Dropbox to create the new artwork job in the backend to start working on it. During the development phase we use Continuous Integration approach, we implement automated tests with Codeception and every test case was designed to validate and verify a requirement or anentire workflow. Furthermore, all technologies we used in this project have also been very useful and gave support our development team to achieve a product of high quality and with maximum efficiency.

In one of the latest stages, we've implemented an API that allows other applications to connect to this main Let's Plum app in order to create and manage jobs automatically. We've developed a custom CakePHP plugin from scratch for managing external connections, validating and authenticating users through OAuth 2.0. Once the connection is validated, the client app must send a REST request to create an artwork jobs or monitor progress. All endpoints are specified in the online documentation we have supplied, which was generated automatically from our source code.

Technologies

  • VPS with CentOS 7 and PHP 5.5: Last stable version of the open source operating system used on most web servers.
  • CakePHP 2.x: Framework PHP using MVC design pattern, this is great for initial scaffolding. CakePHP includes lot of build-in libraries as well as great security layers in our web application based on the latest web development standards.
  • Angularjs: Excellent javascript framework, open source, which allows us to implement dynamic UI, it also helps to manage data in real time much quicker, reducing needs to connect to the server for processing, fully mobile-friendly with new awesome visual effects.
  • MongoDB 2.4: NoSQL database that allows greater amount of data queries in less time than a SQL database.
  • Elastic Search 1.5.2 / Lucene v4.10.4: internal search engine which offers several functionalities to perform complex search based on a keyword and returns almost instant results.
  • NodeJS, Bower and Grunt: We use these great technologies to manage installed packages on development and production environments, for example to manage Bootrstrap, jQuery, Less, FontAwesome and others.
  • Dropbox: Integration with the system to send and manage files directly from the application backoffice. Thus, an admin user does not need to pay for extra user on his business Dropbox account but just one Dropbox user (assigned to the website) performing the management of the files. This way you can climb any means dropbox and sync with the website administrator panel, among other things in order to deliver work performed and automate processes that were previously done manually.
  • OAuth 2.0 is the next evolution of the OAuth protocol which was originally created in late 2006. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones

Serfe info(at)serfe.com https://www.serfe.com/images/serfe_logo_text.png https://www.serfe.com/images/serfe_logo_text.png FALUCHO 2032, S3016LDB, SANTO TOME, SANTA FE, ARGENTINA 1-305-5375397
Cookies & Privacy: 
This website uses cookies to ensure you get the best experience on our website.


Privacy Policy