Freshsales-ZeroBounce

Freshsales - ZeroBounce Integration

ZeroBounce is an Email validation tool which helps teams in making sure that their contact lists are not containing any contacts with invalid email addresses. ZeroBounce claims that their accuracy level is 99% and their tools help with Email Marketing ROI.

This integration helps in identifying whether the contacts in Freshsales have a valid email address or not with the help of ZeroBounce.

How this integration works?

Freshsales-ZeroBounce Integration runs in two scenarios,

1) Whenever a new contact is created in Freshsales.

2) Whenever the default Emails field in Freshsales is updated in a contact.

The marketplace application listens to any contact create or update events in your Freshsales account and then sends a request to ZeroBounce to check if the Email address entered in the default “Emails” field is valid or not. ZeroBounce analyzes the email address and then responds with a set of details as shown in below example,

Consider the email address entered in the contact to be “james.sampleton@freshworks.com” then following will be the response from ZeroBounce,

{"address"=>"james.sampleton@freshworks.com",
"status"=>"catch-all",
"substatus"=>"",
"freeemail"=>false,
"didyoumean"=>nil,
"account"=>"jamessampleton",
"domain"=>"freshworks.com",
"domainagedays"=>"9691",
"smtpprovider"=>"g-suite",
"mxfound"=>"true",
"mxrecord"=>"aspmx.l.google.com",
"firstname"=>"james",
"lastname"=>"sampleton",
"gender"=>"male",
"country"=>nil,
"region"=>nil,
"city"=>nil,
"zipcode"=>nil,
"processedat"=>"2024-08-26 12:18:56.333"}

The primary information in this response is the “status” value. This status value is stored in a custom text field in the contacts module in Freshsales. The other details are added as a note in the respective contact record for reference.

What is status in ZeroBounce Email Validation?

ZeroBounce validates each email address and the status value helps us in determining if we should be sending emails to the respective email address or not. Following are status codes in ZeroBounce,

Valid - The email address is valid and the bounce rate is minimal.

Invalid - Emails sent to email addresses with status as Invalid will most likely bounce.

Catch-all - Its difficult to identify if these emails are valid or not and we can only determine its validity by sending an email. If you want to send emails to them then do so by creating a separate list of catch-all email addresses.

Spamtrap - Avoid sending emails to them.

Abuse - Avoid sending emails to them.

Do_not_mail - Valid email addresses but should not be emailed.

Unknown - ZeroBounce is not sure about this email address and its more likely to be invalid.

More information about ZeroBounce status codes can be seen in the below document, https://www.zerobounce.net/docs/email-list-validation/status-codes/

Do I need credits in ZeroBounce?

Yes, you will need to have credits in ZeroBounce for this integration to work. By default, ZeroBounce offers 100 free credits and their pricing can be check in the below page, https://www.zerobounce.net/email-validation-pricing/

Do I need to have a paid plan in Freshsales?

Yes, Freshsales offers APIs in paid plans only and so you will need a paid plan in Freshsales. Following article has information about the API limits in each plan, https://crmsupport.freshworks.com/support/solutions/articles/50000005599-does-the-web-application-have-api-request-limits-for-an-account-

How to get my API key in ZeroBounce?

Login to your ZeroBounce account and click on the “API” tab in the left nav bar or open the link - https://www.zerobounce.net/members/API

image

How do I get my API key in Freshsales and what is my Freshsales domain?

In order to get your Freshsales API key, login to your Freshsales account and click on the personal settings icon in the top right corner -> Click on Personal settings,

image

Next go to “API” tab within your personal settings and copy the API key mentioned under “CRM API Details”,

image

Your Freshsales domain is a part of your Freshsales account URL. For example, if your Freshsales account URL is “crm.myfreshworks.com” then your Freshsales domain is “crm”.

How to create a custom text field in contacts module in Freshsales?

A custom text field in the contacts module can be created by following the below steps,

1) Go to Admin settings in your Freshsales account and click on Contacts,

image

2) Click on Add field in the right corner on the contacts form fields page,

image

3) Select “Text field” and click on Add selected,

image

4) Enter a field label like “ZeroBounce Status” and then click on Save,

image

5) Copy the internal name for that field and paste it in the app installation settings. For example if your field label is “ZeroBounce status” then the custom field internal name will be “cf_zerobounce_status”.

Note - The internal name does not change. So if you change the field label then the internal name will not change it will remain the same on how it was created initially.

Why should I create a custom text field in Freshsales?

A custom text field is required to store the “status” value under the respective contact. The primary reason to create a custom field is so that you can filter contacts based on the values stored in this text field and also export this data from Freshsales whenever required.

What happens if I enter an incorrect internal field name for the text field or do not create one?

If you enter an incorrect internal field name or place a dummy value in this field then the status value will not be stored in any contact field and you will not be able to filter or export contacts based on ZeroBounce email validation. The overall response from ZeroBouce will still be displayed under notes.

Limitation

This app uses Freshsales and ZeroBounce APIs to validate the email addresses of contacts in Freshsales and so there are certain product and platform limits within which the app needs to operate. In case of bulk CSV import or situations where a high number of contacts are created within a minute, then there are chances that the updates do not reflect for certain contacts. By default, the app has a retry mechanism which allows a failed request to be attempted upto 10 times (orginal request + 9 retries) where the interval between each retry is a minimum of 5 minutes. So, in this scenario there can either be a delay in the contact being updated or some contacts being missed. This application can handle approximately 160 contacts being created in the same minute. In case the app needs to validate email addresses of more than 160 contacts being created within a minute, then kindly drop an email to pulkit.chowdry@freshworks.com with the account details and the frequency of such CSV imports.

Note - Default limit is 50 requests per minute (17 contacts for this app) and through retry mechanism the app can process upto 160 contacts which have been created in a minute.

If contacts are created/updated in separate batches with a difference of a few seconds between each request then there won’t be any issues as the app can handle 16 new requests each minute without any delays.

For Support, drop an email to pulkit.chowdry@freshworks.com