When Virket contacted me in 2016, to help them with a Netsuite Integration, they had a pre-established production lifecycle for client websites. They offered to build business websites to Izzi telecommunications providers’ (Televisa Group) SME clients, for example. In Netsuite they have been using issue tickets with highly customised forms in order to aid and control the production lifecycle of each website customer. They had their own call center, where agents would do client interviews to gather the clients’ business information, design and content wishes. Their in-house copy writers, designers and frontend developers would then execute the sites and QA would finally approve the results before the websites were handed over to the end customers.
The cooperation with GoDaddy was built on this pre-existing experience with great customer satisfaction and their timely fashion of site delivery. GoDaddy customers would purchase different types of web design products, and Virket would interview the customers, mostly SMEs, and deliver a professional website within 7 or less business days. The products would range from Basic (single page Site-Builder sites) to Advanced (WordPress websites, with many subpages) and later as well Ecommerce sites with WooCommerce.
While DIY Site-builders like Wix and others were growing in popularity, only a small fraction of the users were actually able to use them like professionals â resulting in abandoned and worst of all unfinished websites, which have no benefit for the SME. GoDaddy saw the opportunity to enter the latin American market, as well as educate new customers and business owners in using technologies like WordPress and WooCommerce, while helping their businesses thrive. These products initially launched in Mexico, but were quickly extended to Columbia, Argentina, Peru and more countries.
Since I took this project only a couple of weeks before the actual product launch, Virket’s project manager Irene Montoya and I had to break down all requirements into a roadmap of smaller packages, which were then prioritised like this:
- Receive and store completed orders from the GoDaddy call center via API to a custom-made middleware.
- Create appealing, GoDaddy branded transactional emails and send them via Office365 API
- Create RESTlets and SuiteScripts in Netsuite to receive customer information
- Create customer orders in Netsuite via RESTlets.
- Create and customise the necessary issue tickets and their forms in Netsuite.
- Update the current fulfilment status in the GoDaddy CRM
- Send transactional emails automatically as an order progresses through it’s statuses
- Add Calendly functionality in order to schedule client interviews and assign to available agents automatically
- Launch more products (WooCommerce websites)
- Launch in more markets and countries across 3 different timezones.
- Add visualisations for several KPIs to the Middlewares’ backend.
While individual departments of Virket prepared to launch in a semi-manual mode (monitoring deliveries, planning resources etc. with Spreadsheets), I started my work in close coordination with Irene, my project manager and Geoff Bilas, her counterpart at GoDaddy.
Order Intake from Pipedrive CRM to a Zend Expressive Middleware
After getting to know the APIs and the webhooks of Pipedrive CRM, I created a very simple API with Zend Expressive. Based on the data we would receive from Pipedrives’ webhooks I designed the database. Relational tables helped mapping UUIDs of pipelines, products and statuses into more meaningful and descriptive values. Milliseconds after a web hook was received on our API, I added a unique reference ID to all datasets in Pipedrive. This allowed for anonymised, more secure communication between Virket and GoDaddy, where all involved had a reference ID to look for instead of handling sensitive customer data such as phone number or email. It also indicated to GoDaddy call center agents, that the order was successfully passed to Virket.
After having added some basic customer, order, user and product views in the backend, the first functionality added was a transactional mailer. I created the responsive HTML templates for about 10 different customer notifications. Since this was a white-label product, we were required to send emails from a @godaddy account so I connected the Middleware to Microsofts Office365 API via Oauth tokens and refresh tokens. A simple form in the middleware’ backend offered to choose customer, product and the email template to send. Twig was used to render the emails, and the Office365 API actually sent out the emails and stored them in the account sent box. By adding specific Pipedrive BCC recipients, GoDaddy could see all emails in Pipedrive, which was helpful for their customer support, as well for full transparency over customer communication and advances.
Netsuite configuration and data synchronisation
While I had built the middleware and transactional emails, Netsuite had setup a new staging environment in which I could get started. First, I created duplicates of the pre-existing, well-established order fulfilment lifecycle done by Netsoft, a third party Netsuite integrator that I had worked with before for Dafiti, MÃ©xico. I configured the new products, added new issue ticket types, and statuses as required and adjusted all of the forms and custom fields. I added the new cooperation partner for the accounting side of things. Like with many other platforms in Ecommerce, Netsuite dictated the chronological order in which data synchronisation had to be done. For example: you can’t create an order without a customer; you can’t create a customer without a billing address; etc.
Netsuite RESTlets made data synchronisation a lot easier and faster, too. In past Netsuite integrations I had to work with bulky and slow SOAP APIs which were not able to handle multiple requests at the same time (so I used multiple users to achieve better performance) to communicate with Netsuite.
While I made good progress in Netsuite, the product went live, and the middleware started collecting real data, and send real emails. Virket started delivering the first customer websites to GoDaddy customers in Mexico successfully. It took another two weeks to get all data types to sync in realtime into Netsuite.
The actual production lifecycle of a website as defined by Irene Montoya and the department leaders was had to be applied in SuiteScript which meant to check all sorts of conditions to make decisions, where a ticket needed to go to next.
The decision to work on the database and storing all types of data first, proved to be an excellent decision. While working on data synchronisations to Netsuite, I decided to apply the same logic to already stored historic data. This was done with a queue logic, and eliminated the need for additional work to import. So no CSVs were needed.
Issue tickets, Pipedrive sync and email triggers
Finally, with all relevant data synced and in place, I could create the initial client interview issue ticket link it to customer and order records and populate it with relevant information. So Virket’s in-house call center agents, developers, designers, content editors could work their well-established production flow.
While issue tickets progress to different statuses (back and forth), I added API calls to Pipedrive that move the order into the corresponding status columns in Pipedrive as well.
Changes in the status of an issue ticket, were also used to trigger all sorts of transactional emails. The final “Your website is ready” email concluded the production process. The mailer was extended to prevent sending too many emails to customers. A delay was added as well, so that accidental status changes â human error â wouldn’t trigger emails right away. Checks if the same template had been sent earlier, etc.
More email fine-tuning
While specific support was given to customers directly from the developer/designer working their site, we saw customers answering directly to transactional emails which wasn’t intended or anticipated like that. This caused tremendous extra work, as someone needed to pay attention to the inbox constantly. To address this problem, I added the order ID to all HTML email templates, then used the Office365 API to check sporadically for new emails in the inbox, then scan subject and email body for the order id. I could then automatically forward the email to the person which the currently active issue ticket is assigned to â as well as drop a BCC copy to Pipedrive for full transparency with GoDaddy.
Whenever website preview links were sent out to customers, the customers feedback or a simple click on an approve button was required to complete the process. Sometimes customers, wouldn’t respond on time, so I added reminder emails templates, sent automatically every 48 hours up to n times.
Expansion to new markets and new products
At this point hundreds of websites had been delivered to happy customers, Virket started to hire more and more developers in order to being able to handle the demand. Human Resources was now in need of a calendar view showing the delivery dates according to the SLA in the Middleware backend. Once I added this, it helped them to organise their workforce based on the amount of websites due for a specific date.
GoDaddy went ahead and launched the sale of the product line in more and more of their Latin American websites. GoDaddy also started to incrementally increase marketing measurements in all of these countries via Facebook, Youtube as well as Television ads. All fulfilment was handled by the same teams in Mexico City. Since the products were now offered to customers accross 3 different timezones, the business hours as well as local phone numbers in transactional emails needed to be adjusted. Scheduled Calendly calls also needed to be automatically “converted” to Mexico Citys Central Time before placing it in an agents’ calendar.
Everything outlined in this case study was done in just a couple of months. The project was extended for ongoing maintenance and the expansion to new products and markets was executed. I enjoyed the challenges, learnings and the perfectly organised and structured work on this project. Throughout the whole project there was a strong sense for detecting repetitive, manual steps and to eliminate them by automating these steps with the tools at hand. No time was wasted on creating functionality, that could be delivered by existing 3rd party tools and services. This is why I chose Calendly over spending time re-creating this functionality through the Google Calendar API, for example. Pipedrive has one of the finest APIs I ever had the pleasure to work with. Even Microsofts API turned out to be rock solid, sending thousands of emails reliably. With todays knowledge, I would use an ORM for persistence in a similar project, due to the unpredictable order and short intervals between external webhook calls. Also, after completed historic imports, some processes do no longer require triangulation with a Middleware â these could be handled in Netsuite directly.
After more than six years the product line is still successful and available across all of Latin America (Mexico, Chile, Argentina, Colombia, Peru and Venezuela).