7 min read
The client needed a specialist to implement email and SMS marketing for their newly established online store. The client's main goal at the beginning of the collaboration was to acquire potential customers before the store's opening.
Monika Nastalska
Email Marketing Freelancer at SoftwareSupport
7 min read
Learn how a SoftwareSupp Freelancer used Zapier integration to connect Nexudus, Pipedrive, PandaDoc, ActiveCampaign, and Calendly to automate the process of acquiring and handling sales lead for a coworking space.
Time of the project: 3 weeks
Scope:
Effect: Bespoke Zapier integration of a suite of tools and to efficiently and automatically manage sales lead processes and other customer-facing activities such as payments or membership management.
Our client is primarily focused on outsourcing co-working and event spaces. They offer various products, including access to co-working venues, hot desks, coffees, and more, in order to provide their customers with the best working space. With their growth, they needed to automate handling new sales leads that are interested in their services.This client wanted a more complex zapier integration with existing tools as well as new tools required to drive a seamless sales process.
SoftwareSupp freelancer was hired to combine crucial sales, marketing, management, and accountant tools to control the sales lead process in an automated manner and ensure efficiency. He used Zapier integration, the simple yet powerful automation solution, to bring order and put every action in the right place.
Additionally, when designing the workflow, the SoftwareSupp expert had in mind that the client in the future wants to move all data collected in separate tools to a central database and combine everything in Google Firebase. We left room for that and made sure the project could escalate.
The final sales lead flow consisted of six steps, starting with acquiring the lead through available client touchpoints, submitting membership information, auto-sending a membership agreement, and actually joining the workspace by the customer.
Bringing all these activities together was made possible by a robust integration of the tools listed below through Zapier and webhooks:
Now, let's explore the final form of the sales lead process in six steps.
Our SoftwareSupp freelancer made it possible to automatically send relevant marketing messages when the customer enters the client's website. We use smart Zaps to integrate Pipedrive with ActiveCampaign. This way, when a new user browses the website, they're automatically added to the campaign and receive personalized email communication.
In the first step, a new lead, or a person who wants to become a member of the client's facilities and workspaces, applies for membership. The membership inquiry comes in through the phone call, website contact form, or an email message. Then, the lead qualification process and customer needs research follows.
The Zap that we created in Zapier ensures that every form that's filled out, regardless of the inquiry source, goes straight to Pipedrive. A new sales opportunity is then created, and the new lead automatically receives a brochure to the email address they provided (more on this in step No. 3).
What's more, the owner of the deal is informed of all changes. They also know the entire flow related to the membership and can track further progress in the Pipedrive. Better yet, they can see all messages sent to the lead in Pipedrive, even those sent by ActiveCampaign.
The entire tour process begins once a lead is qualified. The lead receives a generated Calendly link through which they can schedule a meeting with a client's representative. After a successful conversation, all collected data is sent to PandaDoc, which was also connected with Pipedrive through Zapier integration.
The next step takes place in the PandaDoc software and is related to the brochure that is sent to the customer. The brochure contains all the information about the membership types and payment policies. We've used Zapier integration here so that this document is automatically populated with data from Pipedrive and is made specifically for a single person.
Next, the lead gets an email with a customized brochure containing all personal details, membership and marketing information, and other incentives. Once the lead selects a membership type, they're marked as "Won" in Pipedrive and move on to the following step with a binding membership contract created by PandaDoc.
So, after the brochure is sent and the new lead accepts their invitation to become a member, the PandaDoc automatically generates a contract template. Then, the contract is sent to the customer with all personal information (no manual work is required here).
Once the customer approves and pays the mandatory sign-up fee, it's marked as "Accepted" in both Nexudus and Pipedrive. This flow is also made possible by synchronization through Zapier integration.
On an ongoing basis, Nexudus verifies that the customer data is already in the system to send invoices and quotations for the client's services efficiently. More on this in the next step.
Our client was using Stripe for subscriptions and checkout scripts but decided to switch to Nexudus. They also use digital wallet passes for interactive membership cards that are synced, updated, and voided based on the customer's selected plan in Nexudus. The client wanted a one-stop place to manage billings, and Nexudus was the way to do it.
In Nexudus, all the customer contracts are edited to reflect the actual status of subscriptions and memberships. In short, if the customer agrees to the contract from the previous steps, a dedicated contract is automatically generated using PandaDoc. The SoftwareSupp expert did it with Zapier integration and dedicated webhooks. Nexudus is a single source of truth for the client to manage all members, passes, payments, or credits. So, it was so crucial for us to ensure all data was integrated correctly and refreshed in real-time.
Our client also wanted to send quotations through PandaDoc and wanted them to be linked to Nexudus. So the SoftwareSupp expert combined the two software programs, and now the client can manage member payments for specific venues with just a few clicks.
Nexudus is also a great tool for lowering customer retention. All invoices and payment information are in the system. Nexudus also automatically sends a reminder to pay the contract. When the contract is paid by the customer, the system automatically receives a check-off. Also, with the zapier integration between Nexudus, and Calendly, the customer receives an email with a dedicated link to Calendly to schedule a new call for the next step, the induction process.
This is the final step in the sales lead process that we've been working on. First, the welcome information is sent to the new member. Also, the induction process begins, which is booked through Calendly.
The induction process is a sort of introductory meeting to the new workspace and all the rules. The client wants to make sure that the new customer is given all the necessary information about the membership, is fully aware of the opportunities, and takes full advantage of them.
1. Induction is booked through Calendly.
2. Customer arrives at the reception.
3. Member pass is scanned using Nexudus.
4. Induction takes place, and the customer follows the onboarding process.
6. Book of the workspace for a new member using Nexudus.
7. Post induction check-up takes place two days after the induction date.
After the induction process, there's nothing left to do but get through the membership check-in process and take a seat in the workspace.
All in all, the new customer is happy to join a comfortable workspace after a short and pleasant sales and membership signing process. Everything happened automatically, and they had no idea about it. In turn, our client doesn't have to worry about manual customer nurturing, verification, payment, or back-office processing. The automation we set up saves time and energy.
The developed sales lead workflow certainly helps our client to organize matters and update customer data in every tool. Also, everything is wrapped with automation running flawlessly in the background. As a result, the client gets rid of some manual and time-consuming work and can focus on complex activities.
7 min read
Find out how good communication skills and understanding customers' needs influence the success of the software implementation. In this article, we describe a scoping session and the process of creating a CRM implementation project.
SoftwareSupp experts have been involved in the software implementation in various areas. Knowledge and skills, which they have acquired over the years of practice, are the element that makes them professionals. Experience in working with multiple clients gives them the utmost advantage- the ability to meet client expectations. It may seem obvious, but not everyone has developed soft skills. Skills that allow easy and pleasant cooperation. With SoftwareSupp experts, creating a project is no longer a big problem.
Mr Arkadiusz is definitely a very knowledgable and helpful developer. The work was well-prepared and organized. Sometimes we had to be supervised and chased but I think Mr. Arek handled it very well. We have a few things to work through but our opinion is very positive. With a clear conscience, I could recommend co-operation with SoftwareSupp Experts. - Ewa Olczak, the Client
Among the whole range of IT specialists on the market, SoftwareSupp cooperates only with those who work with the client effectively. At SoftwareSupp, we value the highest quality of service. Therefore, experts from the SoftwareSupp database are verified in terms of identity, technology - certifications, and soft skills. The last item - soft skills, is what we would like to focus on in this article. It is an essential factor when working with a client. As we all know, people are very different. They have unique temperaments and life experiences that have shaped them. In our opinion, a good specialist is one who, apart from the technical skills that are obligatory, can also communicate with people. What is more, we are publishing expert experiences openly. In SoftwareSupp, the value is a verified specialist. Arkadiusz was chosen to realize the project of Pipedrive software implementation. He is a practitioner with over 4 years of experience in implementing and using Pipedrive daily in both product and service companies.
Project: Software Implementation for Polish based marketing agency. The goal was to implement Pipedrive from scratch and integrate it with 3rd party project management tools like ClickUp, Pandadoc.
Duration: 25,5h
After starting the service, the client received an expert within 24 hours. The advantage of having access to the SoftwareSupp elite network is a short project initiation time. Our main goal is to connect with our verified expert within 24 hours from the time the client activates hourly balance.
Software implementation of CRM system should support the sales process and customer acquisition. Arkadiusz has many years of experience in Pipedrive implementations. Hence, was able to conduct an appropriate scoping session to obtain information about the client's needs. The company struggled with the following issues:
Our client wanted all data to be imported into a CRM system that would generate reports, forecasts, and analyses. They need to be able to track their leads. The aim was to automate the tasks of the sales process, invoicing, and creating contracts. Moreover, it was important for a client to define the sales funnel. An additional requirement was: downloading data from the Central Statistical Office / CEiDG based on NIP or company name.
Within your hourly plan, SoftwareSupp can provide you support in the required timeframe, software and technology. Thanks to our worldwide network of experts, we can find the best match for you and your business.
In this project, the client did not know exactly what system he needed. There are plenty of them on the market. Selecting the perfect software, matched to the client's requirements and fitting the current processes - requires the knowledge of an experienced expert.
SoftwareSupp’s team chose the Pipedrive system for this client. Before the cooperation started, the client received a software demo, also conducted by SoftwareSupp's Expert. It made it possible to verify the Pipedrive functionalities, check its usage and establish internal needs. After receiving the initial information from the client, a list of requirements was created. The freelancer and the client influenced the content. After a joint analysis of the needs, the tickets were automatically redirected to the project board, and it was possible to start work immediately. Purchasing the hourly plan at SoftwareSupp means that the expert becomes part of the client's company for the duration of the project. He is responsible for creating a transparent project scope in the project board.
The final version of the software implementation project’s scope included:
The entire implementation took around 30 days. After that time, the client was able to enjoy the efficient work of the marketing team. The Pipedrive software will not only streamline processes in the company but will also increase sales performance. Additionally, during and after the software implementation, the expert conducted training for employees as a group workshop as well as one-to-one training sessions. It gave them confidence that employees will use the software features and effectively tap its potential.
The main part of the described project was the implementation of the Pipedrive software with customized options. However, the expert during this hourly plan also supplemented the system with the following integrations:
These integrations made Pipedrive an even more powerful tool. For example, integration with Sellizer allowed the client to track and analyze sent proposals and score leads effortlessly.
At the beginning of the talks about the project, the expert only received information that sales managers do not want to fill in the data manually, and there is no manageable extraction of information. The client pointed out that the team gets lost in the activities they are to carry out, which affects their effectiveness. It is not very extensive information, is it? Only after completing the form prepared by SoftwareSupp’s expert, specific requirements were listed, such as easy verification of work efficiency, a quick preview of the history of cooperation with a lead> client, central database- available to everyone, reporting system for the entire sales process from various perspectives (sales funnel/achieving goals), reminders about customer activities and tracking the lead path. One of the challenges is understanding the client's business and its requirements for the CRM system. Thus, the expert can define the framework of what is significant and what is not in the context of implementation. Moreover, a proper adaptation for the company processes demands specialistic knowledge of the system. Furthermore, it is crucial to pay attention to the level of advancement of the people who will use it. Additionally, choose integrations accurately - so it allows for the automation of activities and improvement of the processes in all of the departments.
With companies that have not used CRM before, the biggest challenge is to understand and arrange an appropriate process that will be properly reflected in the CRM system. Especially when this process is not completely finished. However, what is even more important is to convince people that CRM is their basic and everyday weapon of a salesperson in the fight for a customer.
Arkadiusz, SoftwareSupp Freelancer
When starting cooperation with SoftwareSupp, you can count on professionalism in the field of communication and technology. See how easy it is to work with us. You will surely want to come back. Employing a person from a trusted and confirmed source like SoftwareSupp guarantees quality. You do not waste time looking for a specialist, signing a contract with him, or adding conditions. Within 24 hours, an expert who knows his role may start working for you. Moreover, during execution, you can change the scope of the expert's tasks by sending one message. You save time that you would waste worrying about the timely delivery of the job.
8 min read
Tips to unleash the potential of your e-commerce through automated marketing, website design, and additional features. Choose software and make it easier for the customer to reach your company's shopping cart.
Would you like to create an online store, or do you already have an e-commerce website, but you require more complex development work? Find out that you can outsource any task-related, in this case, with your e-commerce business.
Due to the global pandemic last year, online shopping has skyrocketed as never before. It forced many entrepreneurs to transfer their activities to the Internet. Growing competition of companies caused customers to demand availability of goods, professional service, express delivery, and a wide range of services. That is why it is important to build an e-commerce store so it can develop at your pace. Thus, you should choose the right experts for your e-commerce store setup. If you are struggling with: domain connection, API update, social media integration, delivery options setup, or others.
To correctly create your online business, the first thing is to choose a proper e-commerce platform. Currently, there are many e-commerce platform providers on the market, we can distinguish among them Magento, Shopify, and WooCommerce.
WooCommerce: Choosing the right software depends on your preferences and budget. WooCommerce is relatively cheap and easy to use. Beginners are their target group. At the moment, it is the most popular platform for building an e-commerce store. 26% of businessmen during e-commerce development while creating their websites choose Woocommerce. In tests, pages placed on this software load a little slower than Magento. It's good to know that WooCommerce is a WordPress partner. It means you can use over 55,000 WordPress plugins and themes. It allows you to load an unlimited number of products. What's more, it has all the latest features to help you write a blog.
Magento is a dynamically developing platform. For this moment, it ranks third in terms of popularity - 8% of users choose this software. It is probably because Magento is a much more expensive and professional solution. However, it is equaled by a high degree of security and high performance. Magento is quite stable- the average availability rate is up to 99.71%. By using Magento, you have access to over 6000 extensions. They cooperate very intensively with developers and agencies. It will be a better solution for large companies that operate on a global scale.
Shopify is an easy-to-use hosted platform. It enables multichannel selling on Facebook, Instagram, Amazon, E bay. When creating a store, you can easily move items from one place to another using drag and drop. Working with a website theme does not require knowledge of the code. It means that the owner of the store can make changes to the website on his own. Most of the themes are paid, but they look great on mobile devices.
E-commerce software offers many functionalities, which, if known and well used, can bring significant benefits. Moreover, the specific features can be modified and supplemented with additional integrations and custom plugins development. So you can ask to set up the e-commerce platform, develop strategies and customize the best solutions. Building a business strategy for your e-commerce is a clue.
A properly placed e-commerce platform allows the customer to track the order at every stage, easy payments, receiving messages about promotions and coupons, and managing the delivery method. All these elements are the basis of a successful shopping experience and customer satisfaction. Moreover, the e-commerce platform must be easily accessible on all devices (PC, laptop, phone, tablet, etc.).
The website should be readable, intuitive, and responsive. These three factors were distinguished during studies with e-commerce customers. Clients of online stores usually know what they are looking for, so a high-performing search setting can significantly increase sales results. It is worth seeking help from a UX designer to properly design product pages, categories, and home-page. Product descriptions and other website content should bring valuable information to the customer.
A properly constructed platform allows for controlled development. The comfort of work for you and your employees is extremely important. Streamlining the sales process, information flow, and being able to control costs will result in more efficient work. Let verified e-commerce freelancers show you the enormous possibilities offered by modern e-commerce platforms. See if you need to implement or develop any of the following:
Each website offering to buy products or services must ensure a sufficiently large selection of products on the website. The client likes to have a choice. Products should be updated throughout the year so that a returning customer can always find something new.
Recently, the awareness of Internet users has increased significantly. Pages that are underdeveloped and slow to load often discourage potential customers.
Enabling the customer to contact the service provides the basis for building a long-term relationship with the customer. It is about our accessibility and flexibility. And most importantly, it allows us to react to problematic situations, thanks to which we have the opportunity to retain the client and recognize errors on our website. At the very beginning, it is worth embedding the chatbot and controlling his conversations. Another solution is placing your number on the website or configuring the possibility of communication via the facebook-messenger tool.
The customer base should be the treasure of every entrepreneur. Thanks to organizing it through the implementation of the CRM system, we can easily send e-mails, inform about promotions and analyze sales results.
Automating the activities related to the sales basket assures the customer of our professionalism. It is worth making sure that products in the basket save automatically in the same way as the customer's data in the delivery form. The customer should return the list of products without fear that the previously entered information in the cart will be deleted.
Filtering is an absolute must. The customer should filter products by size, color, functionality, name, and price. It is particularly relevant for current customers and for those who search for products directly through search engines. Therefore, taking care of the appropriate naming of products is of great importance in SEO optimization. Think about what the customer will write to find your product specifically.
Having a choice of delivery and payment options increases the likelihood of matching your store to different customers and their differing preferences.
For many, the appearance may not matter, but nevertheless, most clients subconsciously evaluate the website. When designing e-commerce, it is worth taking care of its intuitiveness. Colors, fonts, theme - it all has to be consistent. The customer's impression of our website improves the design of a specific customer path. The "call to action" buttons are helpful in this case. They are signposts on the site.
Adding new functionalities may contribute to the increase of interest in your product. The introduction of new forms of payment increases customer confidence. Ask to implement the Chatbot and you will find out how easy contact with the service may increase the sale of products.
The development and acquisition of customers depend on many issues. Private and professional clients pay attention to other aspects. A private customer pays attention to easy contact with the service, the number of comments on Facebook or Instagram, or the availability of various payment methods. On the other hand, the business client will additionally focus on brand consistency, website transparency, and professionalism of service. The company's strategy and building a suitable profile are essentials in the development of e-commerce. Knowing the customer is paramount. Only by meeting his needs at all stages of using your platform, you increase sales, which means an increase in income.
The visual reception of the website is one of the first steps in acquiring customers. It is the moment when a potential customer verifies the value of the services offered and your professionalism. Therefore, it is worth making sure that the website is clear and in line with current trends. The customer buys with his eyes. But that's not all. The goal is to get the customer to make the payment and return to our website. Here, the crucial issues of the game are page navigation and the refinement of the shopping cart. The client who puts the goods into the basket should have a straightforward way to pay. The simpler the path, the greater the possibility that the buyer will not get distracted and make the payment. Pay attention to quality, customers who are determined to buy are very demanding. The website should be extremely responsive and automated at this stage.
In recent times, the competition is enormous. The situation forced many entrepreneurs to transfer their business to the Internet. Moreover, it entails an increase in customer requirements. Marketing is an indispensable element. Its integration will not only bring results in additional orders but also improve the work of the team. Worth considering integrating a marketing automation program: Klaviyo or ActiveCampaign marketing.
Discounts play the main role in the e-commerce industry. By informing the customer about promotions, you attract his attention. E-mail or SMS communication will work best in this case. Thanks to automated strategies, you can give your clients discount coupons, small gifts, or "secret information for club members". Due to the tough competition, you must constantly remind about your store and the products you offer. Marketing activities have unlimited possibilities, but it is worth starting with a newsletter, social media activities, and creating a club of regular customers who receive special discounts.
The work of an expert at this stage of the company's e-commerce development also depends on your expectations. You can purchase the implementation and integration of the automation program, the task of solving an existing problem, or training for a team that will learn to work with them. Thanks to properly selected programs, your team will easily manage the customer base and marketing campaigns. It is important to use the potential of the product through SEO optimization. If you have a problem determining the strategy and tools for running a social media campaign, report the problem and mark "social media integration." In creating e-commerce marketing, you should control the traffic on the site. For this purpose, you can hire an expert for Google Analytics integration and then train your team with him.
First of all, you need to get to know your client. This can be achieved through appropriate shopping cart analysis, website traffic navigation, and sales reports. In e-commerce, we care about numbers in the form of monthly profit, the number of customers, and the daily number of goods sold. To achieve satisfactory results in these matters, you must first analyze the running numbers:
- how many customers leave the website without buying,
- how many clicks and scrolls the customer has to make to purchase a product,
- how many products are never put into the basket,
- how much I have to spend on marketing activities to achieve satisfactory results.
In SoftwareSupp, you can count on help at every stage of the business. We are available for you. We guarantee quality and timeliness. Due to the size of our network, you do not have to worry about not completing the project and about the right know-how.
12 min read
Learn how we combined marketing and development efforts to create a dedicated and powerful Pipedrive and ActiveCampaign integration.
In my case, the team did a great job by implementing CRM & Marketing Automation + their two-way integration via AWS. All the information flows work flawlessly, sales & marketing teams sees all their activities on accounts, contacts, opportunities.
So to sum this up, if you care to work with professionals, if you expect them to advise you on the optimal solution (ROI), if you are fed up of being surprised by system limitations only after its purchase, or simply the box solutions are just too expensive for you, meet up with SoftwareSupp Freelancers.
Marcin Szwajka, CRM Manager at VersaBox, the Client
About the client: VersaBox develops world-class, advanced technology solutions for transforming global manufacturing and logistics. They put autonomy to work for their clients by implementing the Smart Intralogistics platform based on autonomous robotic units.
Time of the project: 3 months
Scope:
Effect: A tailor-made integration of Pipedrive and ActiveCampaign systems to manage sales and marketing processes. Dedicated service to synchronize and maintain data integrity in both systems.
It's well known that combining different scientific disciplines can bring tangible benefits. This was also the case with this project, which allowed us to combine marketing operations with development and create a robust sales and marketing management system.
First, SoftwareSupp's marketing and development experts teamed up to configure both systems from scratch, and in the next step, integrated them into a bespoke service to provide VersaBox with extraordinary value. Let's follow the process to see how our client got rid of information distraction and organized daily sales and marketing operations.
Until now, our client didn't have a single system for managing end-to-end customer relationships. VersaBox wanted to gather information about the customers, which would allow for effective management of the customer database and appropriate planning of sales and marketing activities. So, we decided to implement the Pipedrive system and adjust it to the specificity of VersaBox's business.
At first, it was necessary to define and shift the entire sales process to Pipedrive. It needed to be consistent with the existing model of conducting sales activities in VersaBox. We discussed the sales process during many conversations and meetings with the client and created a sales funnel in the CRM system with these stages in mind:
Within the aforementioned funnel, we distinguished two teams working together: Sales and the bid office. Moreover, we had to design the workflow between them so that both teams were equally involved in the process. Marketing SoftwareSupp expert defined the activities, areas of responsibility, and interdependencies between the sales and bid office teams.
We created a sales workflow between teams and automated the scheduling of actions for every deal at all stages of the sales process. From that point, the deal first goes into the hands of the salesperson, where the lead is qualified in the BANT methodology. Then, it goes to the bid office, where the initial concept and offer are prepared. Finally, depending on the next steps, notifications are sent to the bid office or sales as the goal is to close the deal.
Creating the funnel and the dependencies between the teams was only part of the operation. It was important that individual sales deals were automatically matched to the appropriate stage in the sales funnel based on the activity and scoring. Therefore, we automated the activity planning for every deal at different stages of the sales process. Additionally, we automated sending messages to the bid office team after a sales deal hits the next stage of the sales funnel.
Marketing SoftwareSupp expert has defined custom fields in Pipedrive required to be completed during the sales process. These fields include basic contact information and acquisition sources, daily activity, scoring, newsletter subscriptions, and participation in marketing campaigns.
The next step was to configure labels to enable effective follow-up and lead qualification. We added the appropriate labels to Pipedrive so that VersaBox can qualify contacts as a customer, hot lead, warm lead, cold lead, standard, and partner. In addition, the labeling process has been automated depending on the current sales stage. This will definitely make it easier to filter the data later and highlight those most interested in VersaBox's offer.
Due to the nature of the client's business that sells an end-to-end solution for AMR-based automation, we decided to mirror their offering in Pipedrive and configure the Products. Pipedrive provides the relevant fields associated with product variants or product codes so that the implemented Products are consistent with the actual state. In addition, we synchronized Pipedrive with the database so that the offer is always up-to-date.
Next, we tackled importing the remaining data from external tools used by the client into Pipedrive. The SoftwareSupp experts were able to add information from Excel files, contacts from Outlook and GetResponse, and other databases to Pipedrive. This allows VersaBox to have all the information in one place and not have to switch between systems.
It was important for the client to track deal sources properly. So, we structured them with one-choice and descriptive fields in Pipedrive. From now, they're automatically populated based on the marketing activities documented in ActiveCampaign. We defined custom fields named Source, Medium, Type, and Campaign to best reflect the specifics of the sales deal. Now, the VersaBox team can freely use this information to optimize sales processes.
To realize the full potential of the CRM system, SoftwareSupp experts decided to integrate customer email inboxes with Pipedrive and move all email conversations there. An integrated inbox for the entire organization allows the sales team to track clicks and opens of emails. Additionally, Pipedrive's built-in AI Sales Assistant can suggest the next sales steps based on email communication.
The entire process was topped off with security settings to keep all the client's data and know-how in one place. The SoftwareSupp experts configured security settings, including data leak alerts and suspicious login alerts, to prevent data leakage.
In ActiveCampaign, as in Pipedrive, we had to define custom fields with the disclaimer that they must match the fields in Pipedrive. This allowed us to take the final step in the project, which was to implement a dedicated system integration.
The Versabox team wanted to send emails to their contacts while avoiding blocking the versabox.eu domain. As it happens, ActiveCampaign allows you to define a dedicated domain to send emails to your customers. Additionally, it gives you the option to remove "Sent on behalf of" from the email to increase credibility. In this case, SoftwareSupp experts came up with a solution to define users, domain, aliases, and addresses for sending emails and getting feedback to ActiveCampaign. In this way, we protected the main domain from being blacklisted.
Our client was previously carrying out email marketing activities using GetResponse platform. We suggested moving to ActiveCampaign as this tool works better with Pipedrive and allows the client to expand their marketing efforts into other areas, such as marketing automation, CRM and Sales automation, or Service and Support activities. After discussing this issue with the client, we began exporting data from GetResponse and importing it into ActiveCampaign.
We also automated the process of sending emails to existing contacts. ActiveCampaign allows us to schedule automated emails to be sent to potential and existing customers based on actions they take, such as signing up for a newsletter or visiting a website. Additionally, the integration with Pipedrive, which will be discussed later in this case study, gives the sales team access to information about marketing efforts and all messages sent through ActiveCampaign. Finally, we took advantage of available resources and imported currently used HTML email templates into ActiveCampaign.
ActiveCampaign platform provides a compelling way to build marketing campaigns. There's nothing more fascinating than figuring out who paid attention to our brand and what channels they used to reach out to us. Versabox wanted to start monitoring the sources of leads within marketing campaigns. Our experts structured these sources with one-choice and descriptive fields that are automatically populated in ActiveCampaign based on marketing activity. It's worth recalling that these fields also correspond to fields in Pipedrive, so there are Source, Medium, Type, and Campaign.
Now that we knew we could identify lead sources in ActiveCampaign, the next step was to integrate communication channels into the system. We started by integrating existing contact forms on the homepage and landing pages as the main channels for acquiring new leads. Next, SoftwareSupp experts used ActiveCampaign's built-in progressive web forms. They allow collecting potential customers from the website and targeting them with appropriate marketing activities in the next step. Additionally, these forms have been integrated with Pipedrive to generate new sales deals for the sales team.
Other communication channels we integrated with ActiveCampaign were paid lead generation sources, such as Google Ads, Facebook Ads, LinkedIn Ads, and we did this with Zapier. This allowed for even more precise marketing messages and a higher conversion rate.
Another communication channel was social media profiles. Versabox wanted to target marketing efforts to a specific audience on Social Media. That's why we integrated social media with ActiveCampaign using Zapier and built Facebook Custom Audiences. From now on, our client can freely plan campaigns to selected contacts from the ActiveCampaign database. Additionally, ActiveCampaign allows you to add or remove selected contacts to Facebook Custom Audience based on the activity of those contacts, such as when they visit a website or open an email.
Our client was particularly interested in the behavior of website visitors. Gathering data about visitors is an essential indicator in website development and provides a basis for making changes to its design, navigation, or categories. In addition, it's possible to identify people interested in a particular product, segment customers, and run scoring to send relevant marketing and sales messages.
We used ActiveCampaign's site tracking feature to get information about visited pages, time spent on the page, or interest in selected products. Additionally, VersaBox can monitor clicks and newsletter opens, as well as returning users.
The term "scoring" has been mentioned a few times already, so at this point, it's worth explaining what it's all about. VersaBox wanted to measure potential customers' behavior to manage the MQL (Marketing Qualified Lead) process accordingly. So, SoftwareSupp experts created a contact scoring system based on attributes and activities of leads, such as a contact type, call progression level, actions performed, or stage in the sales funnel.
Together with the client, we defined specific scoring goals that trigger selected automation, such as sending an email, taking action, or sending a notification to the sales or marketing team. With Pipedrive integration, when a specific goal is met, leads are converted to sales deals with a notification sent to the sales team. This makes work much faster and more efficient.
At this point, we had Pipedrive and ActiveCampaign configured for user hierarchy, approval process, and access rules. We also completed the creation of the appropriate custom fields, sales process automation, and lead qualification.
The last and crucial step in this project was to integrate and synchronize Pipedrive and ActiveCampaign systems based on the prepared specification. The main goals of this integration were:
Our work resulted in real-time updates of contacts, attributes, and customer relationships in both systems simultaneously.
In the first phase of integration, we wanted to use the Zapier platform. However, this platform proved to be insufficient for the client's needs. It doesn't utilize all the capabilities of both systems and isn't suitable for two-way synchronization. Therefore, a SoftwareSupp development expert proposed creating a dedicated solution.
We used this technology stack to deliver a solution:
In a nutshell, we built a dedicated service using the Amazon Web Services (AWS) cloud. This service uses the system's native API, which provides much broader capabilities. First, the SoftwareSupp development expert implemented a technique called "semaphore" to avoid a problem known as an "endless loop." The idea is that the system that first updates a resource reserves it for itself for a specified time (30 seconds to be exact). During this time, updates from the other system are ignored.
The system is tailored to the client's needs and uses client-supplied access passwords and searches for custom fields available only in the two systems.
The whole process was to merge two different systems to manage sales and marketing more efficiently. The main benefit of this migration is that VersaBox can work in the same environment and work together to close deals and increase sales. From now on, sales and marketing teams can conveniently add and change customer data without losing consistency across both tools. SoftwareSupp's experts have a wide range of marketing or development skills and can take a comprehensive approach to your project to provide you with a tailored solution.
13 min read
Sharetribe Flex is a complex, production-ready system for building an online marketplace. However even in Flex there is a limit of default customization that you can do. In this article we will explore how to push past those limits.
Sharetribe Flex is a complex, production-ready system for building an online marketplace. If your project needs a lot of customization and flexibility (pun intended), but you don’t have time to build everything from scratch and time to market is very important, then it’s a great choice. However even in Flex (which is a more advanced version of its cousin „Go”) there is a limit of default customization that you can do. In this article we will explore how to push past those limits. Extending backend capabilities can be a great way to augment your marketplace without losing anything that you’ve already built.
Why is this important? Using the recipes below we were able to create a lot of advanced functionalities in our marketplace application, some of them are:
In this article you will find how to:
Tool selection and prerequisites:
In order to achieve all of the things listed above we will have to make some arbitrary decisions on tool selection, however you can change those tools if you have your own preferences and almost all of the presented guidelines will still be applicable and should provide a lot of value. Tools that we are going to use here are MySQL installed on NGINX server, serving as our database and Sequelize as database ORM. We will also assume that you are using Sharetribe Web Template („FTW-daily” or „FTW-hourly”) when speaking about Node.js setup as it is a nice background that will both speed up your initial development process as well as enable us to make this article a bit shorter :) Some prerequisites are also basic knowledge of JavaScript and Node.js.
There are two main APIs that are provided by Sharetribe. Marketplace API is something that you probably already know and use as it is integrated into FTW templates. It's a great tool for building initial UI but it’s also designed with some limitations which are derived from the assumption that all Marketplace API calls are used as the result of users actions directly from their devices. All of these calls are made in the names of authenticated users and you will not be able to access some of the marketplace data from them, for instance other users’ private data, transactions or messages.
What if you would like to build some entities that share data between multiple users? Or maybe create some custom data analytics that will group data from multiple users and listings and export them as CSV files? This is where Integration API is needed. Some of the additional capabilities of integration API are: ability to query multiple users at one request, advanced transaction queries, updating/closing/opening/approving listings, and much more.
According to Sharetribe docs there are 3 different ways to use Integration API: building on top of existing Flex Template for Web (FTW), fork their Integration API example and build on top of that or create completely new application. First method has several benefits that includes faster development time (you are working on an already built server), uniform code base (you can keep frontend and backend in the same github repository) and unmodified deployment process (after making changes to backend you can deploy your app without any changes to underlying process), so it became our choice that will be described below.
Why not using Integration API directly from the frontend app? Because it would expose Integration API secret keys and put at risk your marketplace data security. Flex Template is based on the Create React App tool which is embedding all environment variables in build time.
First step to start is to create Integration API application in Flex Console which is described in details in Sharetribe docs. You don’t have to follow all the steps that includes cloning example Git repository, only setup app in Flex Console and save credentials in your .env file with these variable names:
FLEX_INTEGRATION_CLIENT_ID
FLEX_INTEGRATION_CLIENT_SECRET
If you use two different environments for test and production make sure to create Integration API applications in both of them and include them in your env.development and .env files accordingly.
Now it’s time to set up the backend server. FTW template is designed with Server Side Rendering (SSR) in mind so we have our Node.js server out of the box. We will now create new folder structure for our Integration API endpoints like this:
Some of the endpoints like “batch” jobs to update multiple listings in marketplace data will be only used by us so we’ve grouped them in /internal directory, others will be exposed outside for our frontend app to use, so they will be stored in /external folder. In /api-integration directory we will create a separate file called integrationSdk.js that will encapsulate logic related to Integration API authentication via our API keys:
We can now set up our first endpoint that will use Integration API. For test purposes we will define an endpoint that will receive some user id and return data about this user in the response body.
When the endpoint is ready we will also have to connect it to our router. We will use an already existing API router that puts all endpoints behind /api route. In server/apiRouter.js which should be already present in your project (part of FTW template) at the top of the file add a line which import our test endpoint function, then find part of the file where router middleware is defined and paste second part of code which connects router to our function after that.
To test your new server side Integration API endpoint you don’t have to run entire project with sharetribe-scripts, you can only run Node.js server with node command like this:
If everything has started correctly we can now move to Postman, which is a software used by many developers to test APIs. We will create new request, and setup our test data by extracting some example userId from existing marketplace data:
Before running request one more important thing is to set Content-Type in Headers section to “application/transit+json” to ensure correct parsing of our request body:
After running our example request we see that everything went fine and we can even have a glimpse at users’ attributes which were cut in the middle by author because whole response was very long:
We have now established basic example of server side endpoint that connects to Integration API and in this way we can explore whole API further to get some useful data and ability to write this data into Flex database as well. One of the most used resources in our development team is Sharetribes’ API Reference.
What is probably missing is how to run those requests from our frontend React application and we will explore it now. In our FTW template there is already established request-related logic separation that resides in src/util/api.js file. The only thing that we have to do to extend it is to export our own custom function at the bottom of the file:
Now we can import it and use it in any container or component that is present in our React application like this:
Before deployment of your new enhanced marketplace application please remember to update your environment variables (integration client id and secret obtained from Flex Console).
Hot-reloading is a very nice and useful feature that speeds up the development process and enhances developer experience. You are most likely aware how it works on the front-end side when you are running “yarn run dev” command from sharetribe-scripts. However what you will notice is that changes made to backend endpoints will not be refreshed in this mode. What we need to do in order to see our changes is to run a “yarn run dev-server” script that will rebuild our backend. If you have a little experience with running those scripts you will certainly notice that the dev-server script is a bit slow, because it’s running the build process under the hood. If we want to speed things up in development mode we can follow these steps. First we have to install nodemon which is Node.js tool that automatically detects any changes saved in our source code and restarts server. We can do it by running command:
Then we have to set up a Create React App proxy in our package.json file. It will tell our development server to proxy all requests from frontend app running in development mode on default port 3000 to our backend server that we will run simultaneously on port 4000.
You can find more details about proxying in Create React App docs.
Right now, last step that we have to make is to open two separate terminals, for instance in our Visual Studio Code IDE or other tool that we are using to run sharetribe-scripts, and run our frontend app and backend app simultaneously:
Voila! We have both our frontend and backend running and they will automatically reload in case of any changes made to any of them.
Our backend endpoints are running, but we might not want to expose all of them for anyone to access. In this case one of the best options is to create some token based verification, that we will in fact implement. We will use very popular JWT tokens, create functions for their generation and explore how to link them easily to our endpoints as convenient middleware.
First we have to install the ‘jsonwebtoken’ package from npm. Then we have to generate our private key for token generation (separate for test and production environments) and save it in .env.development and .env files accordingly. It should be string with alphanumeric and special characters, I’d suggest a 128-bit string that you can generate with any tool found in google but you can use longer as well. We will save it under JWT_PRIVATE_KEY variable name. Now, in the /api-integration directory we will create a jwt.js file which will export functions responsible for generating and checking our token. Our token generation is based on users UUID that in production code will be received from frontend requests. In that way we will have consistency between our tokens, users and marketplace data. We will also be able to easily verify users' permission based on JWT token, because after decoding it we could decode users id from them and check if there is a match.
Now we can add authenticateToken() function as middleware to our testIntegrationAPI endpoint. It will intercept our request, check headers in search for a token and then validate this token with our private key. In case no token is present we will send 401 HTTP code status, and in case token is not valid we will send 403 code. When the token is correct, control will be passed over to the original function that was requested, in our case testIntegrationAPI().
To test our endpoint we have to generate our token for test purposes, in order to do that we will import generateToken into our apiRouter.js (this should not be done in production, it’s only our testing method) and run it for some arbitrary userId taken from our Flex Console.
After running our backend server we will get output like this:
Now we will copy this token and insert it into our Postman request in the headers section. Don’t forget the space between ‘Bearer’ string and token value.
We can test our /testIntegrationAPI endpoint once more. If we turn off our ‘authorization’ field in headers it should return 401 status. If we provide a token with some mismatching value (for instance delete last letter) it should return 403 status, and in case where we will provide a valid token it should run our testIntegrationAPI() function.
One other thing to mention is that in our testIntegrationAPI() we can actually access the value stored in our JWT token if it’s valid. We can do it like this:
After testing our endpoint again we should see our user object with an id stored inside that should match the id of the user that we provided when the token was generated. In this way we can check who is the owner of the token and based on that we can allow or deny access to some of the resources provided by our endpoints.
Code above was only a short example of how to implement a convenient and easy way to secure our endpoints with token verification. In production-ready implementation we would have to implement functions for generating token for every user which would be called upon registration by trigger from frontend application. Suggested place to store generated tokens is some field like userToken created in privateDate in marketplace data (Flex Console). We would also have to implement a function that updates every existing user with generated token to enable them to use our token-secure endpoints.
In this article we explored how to further extend Sharetribes’ FTW template for building advanced marketplace applications. We’ve learned how to safely connect to Integration API and how to use it from our React application. There are of course other things that can help you further extend your backend capabilities and will nicely integrate with solutions established above. At some point in more advanced projects (like our own SoftwareSupp.com marketplace) you can also think about setting up your own database and integrating it with your backend server. From our experience we can hint that it is useful to connect your data entities by UUIDs from Sharetribe to make your data model consistent with marketplace data. You can also think about creating your own file management server that you can easily connect to this database and server-side endpoints as well as setup custom email automation with scheduler to trigger them at predefined date and time. We have done all of those in our application and we can attest that it is certainly doable but it did not fit into the scope of this article. If you are looking for help with your Sharetribe development process you can find experts with us.
2 min read
How to use Sharetribe's built-in dashboard for triggering particular actions for the marketplace? Learn more in this explainer article.
Sharetribe has a built-in dashboard for triggering particular actions for the marketplace. You can manage all the users, listings, reviews and transactions there. The management includes transitioning particular transactions to next steps, editing data entities and editing your marketplace settings.
What’s missing in all those functionalities is the possibility to trigger actions on the platform or even in a 3rd party tool. For example, if you want to notify the user that the listing they posted was approved by the marketplace operators - you need to do it manually. This can be an inconvenient problem.
To solve the blocker you can easily implement a custom admin dashboard in the app. All you need is the Integration API set and some environment variables configurations.
First, you need to create a user, that we’ll be acting as the admin. All the desired admin actions should be done via his account. After the user creation go to the dashboard (screen from user data entity view in flex console below) and copy the user’s ID. It will be stored in the environment file.
So in this case the ID would be 60781ed8-a89d-470a-b64b-21e30d21f20e.
Go to your .env file and create a new variable. The name can be whatever you want, just remember it should begin with REACT_APP to use it on the browser side. For this example let’s name it REACT_APP_ADMIN_ID.
REACT_APP_ADMIN_ID=60781ed8-a89d-470a-b64b-21e30d21f20e
After you rebuild the app you should be able to access the variable from the code.
Now it all depends on what you want to achieve. Let me show you an example of triggering a mail after you approve the listing.
First, you need to create an event that will trigger the listing approval and mail sending.
onApproveListing = () => {
}
const approveButton =
<SecondaryButton onClick={() => onApproveListing()}>
Approve
</SecondaryButton>
You need to add a display condition for the button - the user has to be the admin.
onApproveListing = () => {
}
const isAdmin = currentUser.id.uuid === process.env.REACT_APP_ADMIN_ID;
const approveButton = isAdmin
&& <SecondaryButton onClick={() => onApproveListing()}>
Approve
</SecondaryButton>
Now what’s left to do is to call the desired functions in the onApproveListing method.
onApproveListing = () => {
approveListing(listing.id.uuid)
.then(() =>
triggerListingApprovedMail(listing)
)
.catch(e =>
console.log(e)
)
}
const isAdmin = currentUser.id.uuid === process.env.REACT_APP_ADMIN_ID;
const approveButton = isAdmin
&& <SecondaryButton onClick={() => onApproveListing()}>
Approve
</SecondaryButton>
And that’s it. What’s else to do? Allowing admin to message other users limitless, adding particular types of listings or giving the functionality to export processed data in CSV for more complex marketplaces are just a few of the many possibilities that can be implemented for admin usage.