InnovMetric standardises their Salesforce address data with AddressTools

AddressTools is easy to use, robust and has great support, so there is no reason not to use it!

Stéphane Houle, Web Operations Supervisor, InnovMetric Software Inc

Standardising their Salesforce address data means that InnovMetric can effectively leverage their CRM

The history of InnovMetric is one of technological innovations and passion for 3D measurement in which a talented software development firm headquartered in Quebec City, Canada, leverages its key partnerships with industrial manufacturing giants to become a multinational with a direct presence in 17 countries. During the first 25 years of their business journey, they’ve pioneered point-cloud-based inspection, invented the concept of a universal 3D metrology software platform, and introduced the most user-friendly CMM sequencing workflow ever designed. 

InnovMetric are now massively investing in creating the next-generation digital data and process management technologies that will bring 3D measurement data at the heart of enterprise processes to significantly reduce time-to-market and fabrication costs. 

As an international company handling multiple languages, InnovMetric faced issues with their address data that prevented them from leveraging the full power of their Salesforce CRM.

The challenge: standardising address data for reporting and assignment

Salesforce users at InnovMetric were entering address data in different languages, scripts and formats. This resulted in unstandardised data, particularly around state and country values. All of this inconsistent data meant that InnovMetric couldn’t fully leverage functionality in Salesforce that depended on address data – such as filtering reports and assigning accounts.

The solution: implementing AddressTools with zero onboarding time

Web Operations Supervisor, Stéphane Houle described InnovMetric’s AddressTools implementation: 

Very easy! Once set up, we only need to keep our ‘Alternative Country/State Names’ lists up to date every time a new name variation comes up, which takes 5 seconds.”

The AddressTools package includes customisable Alternative State and Country Names.

When asked how long it took to train users, Stéphane added: 

0 minutes – everything is automated and they’re only aware that State and Country names may be automatically corrected after they have entered them.” 

Since AddressTools is native to Salesforce CRM, InnovMetric users are not even aware that a solution is at work!

The results: running operations with clean address data

I can say with confidence that not having AddressTools would make our processes much less efficient, since all Account/Lead assignment is based on the Country field and could not be managed automatically if those names had not been standardized.

With AddressTools in place, InnovMetric can clean up and maintain consistency in their address data, helping them grow trust in their Salesforce CRM as their single source of truth.

Pulling clean, trustworthy reports

InnovMetric has in place a solution that automatically cleans up and standardises their address data in Salesforce. When filtering by state and country data, their reports are consistent, easy to create and trustworthy.

Account and Lead assignment success

By determining a singular state and country value format, InnovMetric removed inconsistent variables that prevented their account and lead assignment automation from running. With standardised address data, InnovMetric can ensure their assignment processes that are dependent on address data work consistently.

Trust in their CRM

InnovMetric don’t waste time thinking about all the possible exceptions that might disrupt their reporting and assignment processes.

Why InnovMetric recommends ProvenWorks

Stéphane shares why InnovMetric has worked with ProvenWorks since 2010:

“I always receive great support whenever I reach out. ProvenWorks is definitely top tier in response time. AddressTools is easy to use, robust and has great support, so there is no reason to not use it!”


AddressTools is our award-winning package for Salesforce to help you standardise, validate and verify your address data.

Standardise your data with AddressTools

Let’s discuss how you can use AddressTools to standardise your address data in Salesforce! Book a demo to see AddressTools in action on a live demo with our team.

The Renfrew Center stays mission-focused with clean address data thanks to AddressTools 

“The customer service has been excellent – a team who goes above and beyond.”

Teri Curtin, Business System Analyst, The Renfrew Center

Working with clean Salesforce data means that The Renfrew Center can focus on its mission

The Renfrew Center has been the pioneer in the treatment of eating disorders since 1985, with a core focus of empowering women to change their lives. As the nation’s first residential eating disorder facility, Renfrew has helped more than 85,000 adolescent girls, women, transgender, and non-binary individuals move towards recovery by providing them with the tools they need to succeed in recovery and in life.

The Renfrew Center was challenged by data management issues. They wanted to ensure that the mailing addresses of their person accounts in Salesforce were clean so that they could focus on effectively communicating their mission.

Clean address data for business operations

The Renfrew Center needed quality address data for a number of different reasons.

Data management

The Renfrew Center was looking for a solution that could resolve CRM data issues. They wanted to have better trust that the data in their Salesforce org was a single source of truth. They needed a way to effectively and efficiently capture accurate address information.

Marketing mailings

They wanted to be able to verify the addresses of bulk mailing lists before sending out marketing materials to ensure successful delivery, reduce failed delivery costs and build important channels of communication with referring clinicans.


They wanted to use the ‘County’ field for reporting in order to make business decisions, so therefore needed to be certain that this data was accurate.

Implementing and onboarding staff quickly

“It’s super easy to use AddressTools.”
Teri Curtin, Business System Analyst, The Renfrew Center

Once installed, AddressTools provided a solution that would empower The Renfrew Center to manage their address data. Since AddressTools is native to Salesforce, it only took minutes to train team members on how to use the tool.

Running operations with clean address data

“AddressTools allows for quick address validation and less time cleaning up incorrect or insufficient address data.” 
Teri Curtin, Business System Analyst, The Renfrew Center

With AddressTools in place, The Renfrew Center is able to clean up and maintain accuracy in its address data, helping them grow trust in their Salesforce CRM as their single source of truth.

When sending out marketing materials by mail, they are confident in the fact that their communication will reach the intended audience.

Thanks to AddressTools, The Renfrew Center can now be confident in the accuracy of its address data as the basis for reporting, improving business analysis and decision making.

Why The Renfrew Center recommends ProvenWorks

In her own words, Teri shares why The Renfrew Center has worked with ProvenWorks for the last six years:

“The support team is always quick to respond, helpful and pleasant to work with. AddressTools has worked as expected and helps tremendously with data management. The Customer Service has been excellent – a team who goes above and beyond.

Learn more about The Renfrew Center

Find out more and support the important work of The Renfrew Center to empower individuals struggling with an eating disorder.

Clean up your data with AddressTools

Get in contact with us to discuss how AddressTools could be your in-Salesforce solution for exceptional address data quality. It’s that simple.


Our award-winning package for address validation, standardisation and verification. Learn more and book a demo.

Everything you need to know about AddressTools 8.0 (Summer ‘22 Release)

You may think we’ve been quiet for a little while with AddressTools releases, but we’ve been hard at work to bring you AddressTools 8.0 🚀

We’re always aiming to provide a better product to our customers so in this post, we’ll go through the changes and improvements we’re bringing in this latest update of AddressTools.

Here’s what we’ll cover in this article:

Enhanced support for State & Country/Territory Picklists

At it’s core AddressTools has always been compatible with Salesforce State & Country/Territory Picklists. However we acknowledge that it was a real chore to configure and could lead to a world of confusion when deploying the tool.

We’ve streamlined this and drastically improved the experience to provide clearer support to the end user when Salesforce State & Country/Territory Picklists are enabled. You will now see picklists available in all AddressTools components and there is better compatibility between your AddressTools dataset and the Salesforce State & Country/Territory Picklists dataset.

With the upcoming custom address field type which is locked to using Salesforce State & Country/Territory Picklists, this update will streamline your setup time drastically. Keep your eyes peeled as we continue to improve this experience!

What’s changed so far?

  • Added support for Salesforce State & Country/Territory picklists in override page.
  • Added support for Salesforce State & Country/Territory picklists in record page component.
  • Improved the unison between datasets minimising the task of aligning the two.
  • Correct acknowledgement of inactive State & Country/Territory data.
  • Introduced support for the use of text and picklist fields simultaneously (Address field type ready!)

New Address Label data returned with address verification 

Do you send international mail and sometimes wonder how to format the address? In this release we have implemented a useful feature ideal for international mailing. Address Label outputs – enabling a hassle-free label, ready for printing.

When using verification, you will now be able to configure a text area in Address Blocks and it will automatically be populated with how the address should be formatted for the country it will be sent to, ready for postal services to handle. Check out the updated documentation here.

Improved page layout management

We always try to make life as easy as possible for our users. In this latest release, the AddressTools override page will place all required functional fields onto the page layout for you. 

No more wondering why the address status didn’t update, no more trawling through page layouts to ensure they have all the fields you need, no more confusion. Just a quick setup that’s ready to go out of the box. 

New storage information & installation options available in the AddressTools Administration Page

Storage-related issues have been the #1 cause of raised cases in the last few weeks. That’s why we’ve added some extra information and options when configuring the tool so that you can be your own data hero.

Users can now select what data points they want to install from the AddressTools dataset. Don’t need US County data? Then leave it unchecked during install! Just testing in a sandbox? Why not just use Country and State data.

We’ve also added your current storage size and total available storage to the overview panel so you have all the information to make the right decisions with no distractions.

And there’s more…

On top of the highlights we’ve explored here, AddressTools version 8.0 brings a ton of quality of life enhancements. If you want to see the full list of features and improvements, you can check out our release notes

How do I update to AddressTools 8.0?  

You can upgrade your version of AddressTools by installing the package from the Appexchange. 

💡 If you need a helping hand, here’s our blogpost on how to upgrade an AppExchange app in 4 easy steps.

Try AddressTools for free  

We provide a 14 day free trial here so you can try out AddressTools 8.0 for yourself! Start journey to better data today.

Updating your solutions for Legacy API Retirement in Summer ‘22

What Legacy APIs are Salesforce retiring?

As part of their Summer ‘22 Release, Salesforce has announced the retirement of a number of legacy APIs.

Versions 7.0 through 20.0 of the Salesforce Platform SOAP, REST, and Bulk APIs will be deprecated and no longer supported as of the Summer ’22 release.

This means that these legacy APIs, and third-party integrations that rely on them, will cease to function after the release.

When are the Legacy APIs being retired?

Salesforce announced that June 10 and 11 2022 is the final release weekend when all remaining Salesforce instances are upgraded if they haven’t been already.

Legacy API Retirements and ProvenWorks solutions

To ensure that you do not encounter any issues with AddressTools, SimpleImport, IndustryComplete or PhoneTools, we recommend ensuring that your current version is or is later than the versions listed in this post. If you need advice on how to upgrade an AppExchange managed package, please see the resources linked at the end.

We have listed the version of each tool, including a link to its latest AppExchange listing, that you must be on in order to be using supported APIs.

AddressTools Premium:


AddressTools Free:


Address Verification Flow Component:


SimpleImport Free:


SimpleImport Premium:









Prepare for Legacy API Retirement in Summer ’22 – Salesforce Developers’ Blog

Salesforce Platform API Versions 21.0 through 30.0 Retirement – Salesforce Help

Salesforce Summer ‘22 Release — Here’s What to Expect – Salesforce News

Salesforce Summer ’22 Release Notes

Don’t Miss These Key Dates: Summer ’22 Sandbox Preview

How to upgrade your ProvenWorks solution

We wrote a handy four-step guide to walk you through how to upgrade your AppExchange solutions.

Contact us

If you’re worried about how the API retirements might affect you and your ProvenWorks solution, please don’t hesitate to contact us.

How to automate Address Verification via a Record-Triggered Flow


Salesforce Flows give admins a chance to implement advanced processes into their org with clicks, not code. Here at ProvenWorks, we want to empower admins to do more, so building on the capabilities of Salesforce Flows, AddressTools Premium allows you to configure an automated address verification process with no coding knowledge.

This article covers configuring a Salesforce Record-Triggered Flow to queue an address verification process on a record that invoked the flow. This produces a verified address within moments of the flow being triggered. It is dependant on Salesforce Future Methods so be aware that there is expected to be a slight lag between the record being inserted/updated and the address being verified.


The component used in the flow comes as part of the AddressTools Premium package. An additional purchase of address verification credits will be required.

If you’re new to AddressTools Premium, please contact with your Org ID to have the team enable your org for batch address verification. Without doing this your org will be unable to verify addresses.

With AddressTools Premium installed, the following configurations will require:

  • An address block to be configured in the AddressTools Administration page,
  • An address status field for the address block,
  • Verification enabled for the org and specifically the address block.

If you need assistance on any of the pre-requisites, please refer to the AddressTools Premium Installation Walkthrough before getting started.

Create a Record-Triggered Flow to verify addresses in Accounts

The following example is going to follow verifying the billing address block on accounts using a Record-Trigger Flow on insert and update. This process can be adapted to any object and address block of your choice assuming it’s configured with AddressTools.

  • Go to Salesforce Setup | Flow.
  • Select New Flow.
  • Choose Record-Triggered Flow.
  • Search and select the object that you are configuring the process for.
  • Set Trigger the Flow When to A record is created or updated.
  • Select Done.

Configure Start

  • Object Account
  • Set entry conditions.
  • Configure Trigger A record is created or updated.
  • Condition requirements All Conditions Are Met (AND).
  • We’ll choose the address status field configured with the address block. For this scenario: pw_ccpro__BillingAddressStatus__c Equals Not checked.
  • When to Run the Flow for Updated Records Every time a record is updated and meets the condition requirements.
  • Optimize the Flow For Actions and Related Records.
  • Done.

Configuring an Apex Action

  • Click the plus sign to add an element
  • Add Action| Filter By Type | Apex Action
  • Action: Premise-Level Address Verification
  • Label Verification of addresses
  • API Name Verification of addresses
  • Set Input Values
  • Country-Field API Name: BillingCountry (This value is the API name of the country field configured in the address block. For example, the Mailing Country on Contact would be MailingCountry).
  • ID of record to validate: {!$Record.Id} (This takes the record ID from the record that invoked the flow).
  • Done.

Save the Flow

  • Select Save in the top right.
  • Provide a Flow Label to help you identify the flow in the future.
  • The Flow API Name will autofill.
  • Click Save.
  • Activate the flow.

Testing the Flow

With the flow created and activated, we can now test it in the org.

Note: before testing the flow, we recommend ensuring you have the Batch Verification Alerts Email field populated in AddressTools Administration with your email address.

  • Go to a test account in the Org.
  • Edit the billing address.
  • Save the record.

This will invoke the flow and it may take a few seconds to return the status. If the address status field has not updated by the time the page refreshed, give it a moment and refresh the page.

Book a free demo

We love talking about all things address related! See AddressTools, our address data solution for Salesforce, on a free demo.

Prepare your address data for the Custom Address Field Type in Salesforce

If you, like many of us, have been eagerly awaiting the custom address field type in Salesforce (it’s only been like 10 years or so?), then you’ll be pleased to hear that Salesforce has announced it is in Beta from the Summer ‘22 release! 

At ProvenWorks we’ve been fortunate enough to participate in the closed pilot since day one so we have been able to follow its progress. We’re now excited to be able to share with you some information so that you can be prepared for its release.

Isn’t the custom address field just like the standard address field type?

Sort of – however, be prepared that State & Country picklists are enforced for all new custom address fields in Salesforce, regardless of your existing org settings. This is largely why we’re writing this article.

State & Country picklists provide a neat solution for ensuring clean data at the point of entry, but admittedly, we’ll be the first people to warn you about the integration issues, customization headaches, and maintenance anxiety you may face when using Salesforce State & Country picklists.

…Nevertheless we are address experts in Salesforce so we’re going to embrace State & Country picklists head on and let you know how to prepare if you wish to migrate from custom text fields to the new address field type.

Important: If you’re steering clear of State & Country picklists and you wish to remain using text fields then keep doing what you’re doing! There is no need to change if it works for you. The rest of this article may still be helpful to understand how to standardize data stored in State and Country text fields.

Standardization is critical

Keeping org data clean is the driving force behind Salesforce’s decision to enforce State & Country picklists for the new field type. If you, like many others, have been excited to migrate away from five custom text fields to a single address compound field, then we’re going to have to standardize that data before the migration process.

The rest of this article will walk you through a fast and efficient way to standardize your existing data from within Salesforce using AddressTools Premium. We’ll cover two approaches:

  1. Create a standardization trigger leveraging AddressTools and run a “mass update” to execute the logic.
  2. Export a standardized list of address data ready for reimporting back into Salesforce.

Both approaches require the same initial steps for configuring AddressTools’ standardization functionality so we’ll start there and break out into the two options later.

The use case

The scenario we’ll be following will be looking at a custom object called “Warehouse”. The Warehouse object contains five custom text fields that when put together create an address. We will refer to these fields collectively as an “address block”.

The five custom fields are:

  • Street
  • City
  • State
  • Postal Code
  • Country 

The fields are populated from a number of different sources – web forms, integrations and user entries – so we cannot guarantee that the data is standardized. 

To prepare this data we’re going to expedite the process by using AddressTools Premium available on the AppExchange. As users (and developers) of the package we have heaps of experience and even some hidden tricks that’ll save days. It shouldn’t take more than a couple of hours from start to finish.

Installing the AddressTools Premium trial

If you’re not already using AddressTools Premium in your organization you’ll need to first install it from the AppExchange. You can do this in a sandbox if you want to test the functionality before pushing it to production.

Note: AddressTools Premium is a paid-for product that comes with a 14-day free trial. This could save you days of work so the cost may be something worth considering, especially if you have wider address requirements.

  • Go to the AddressTools Premium AppExchange listing.
  • Select Get It Now.
  • You may be prompted to log in if not already.
  • Select Install in Production or Install in Sandbox depending on your requirements. It is best practice to test in a sandbox before moving to production.
  • Agree to the terms and conditions.
  • Select Confirm and Install.
  • You may be prompted to log in again. If so, log into the org you want to install the package to.
  • Select Install for Admins Only.
  • Press Install.
  • Check Yes, grant access to these third-party web sites.
  • Select Continue.

Let the process install the package. AddressTools Premium has a lot of features so it may take some time to install (you may receive a warning saying it’s taking a long time, this is normal). When the package has completed its installation you’ll receive a success email.

Once the package has been installed, navigate to the AddressTools App (via the App Launcher) and open the AddressTools Administration tab. You’ll immediately be on the Installation sub-tab.

  • Under the Installation tab, select Create Token.
  • A green tick will appear next to the first step.

Next we’ll want to install the AddressTools Premium dataset. This is a list of countries, states, alternative names, ISO codes, (and heaps of other address-related data).

Warning: This dataset is large. Ensure you have enough storage available if you’re testing this in a sandbox. If your allocated storage is low or you are unsure you can select Only install sample data but beware this will not populate any alternative country and state values that will be used to expand the acceptable standardization data for countries and states. This can be manually added later if you so wish.

  • Under Data Installation, select Get Started.
  • Optionally choose Only install sample data.
  • Select Install.
  • A final warning will appear in relation to storage size. When you’re ready press Yes.

This may take some time and will preconfigure some functionality for your org. Feel free to continue reading this guide so that when you’re done you’ll be ready to rock.

  • Once the installation has finished, refresh the page to see that green tick.

Disabling the out-of-the-box functionality

A trigger is provided out of the box for the Account, Contact, Contract and Lead objects. If this is a fresh installation of AddressTools Premium in your org we’ll want to disable these triggers so that we don’t impact current business processes when we begin enabling functionality further down the line.

After the data installation:

  • Select Settings from the left navigation.
  • Scroll to Trigger Settings.
  • Disable each of the trigger settings in this section.
  • Select Save.

If the address fields you want to standardize exist on one of the four objects, the triggers can be re-enabled at a later point.

Configuring the address block

As mentioned earlier we’ll be referring to the five custom text fields as an “address block”. We need to configure AddressTools Premium with each of the text fields. This will allow the tool to execute standardization on the custom State & Country fields. 

  • On the AddressTools Administration page, select Address Blocks from the left navigation.
  • Use the Add button in the top right.
  • Select the object where your address block exists. We’re choosing Warehouse__c.
  • If you have record types enabled on the object, leave None chosen.
  • Select Next.
  • Under Postal Address Fields, select the relevant fields for each picklist:
    • Country
    • State
    • City
    • ZIP/Postal Code
    • Street

With the object and address fields now specified, it’s time to choose the settings we want to enable for the block.

Whilst still on the new address block modal:

  • Scroll down to Global Settings.
  • Check Standardize Country.
  • Check Standardize State.

Note: there are plenty of other settings here that may take your fancy. A tooltip is provided next to each giving you some insight into what’s available. You can come back to this page at any time should you wish to explore the other capabilities of AddressTools Premium.

  • We’ll complete this step by selecting Save.

Configure standardization values

Standardization is the process of converting multiple acceptable values to a single value. For example let’s take a look at the country Egypt:

  • Full name – Egypt
  • ISO-2 – EG
  • ISO-3– EGY
  • Local name (Latin characters) – Miṣr
  • Local name (Native characters) – مِصر

Each of the above values are technically correct entries for Egypt but a picklist won’t allow all of these values to be entered. Using a text field to accept all the variations of the country name will ease the stress for end users, integrations and streamline future expansions of your org. It’s then best practice to standardize the values to a single preferred format for analytical purposes after the data is inserted.

To identify the acceptable values for each country we’ll take a look at the Countries object installed with AddressTools. This is one of the objects that the data installation will have populated records for and is fundamental to the standardization functionality.

  • Select App Launcher.
  • Search and select Countries.
  • Select All from the available list views.
  • To help understand the data, select the United States country record from the list view.

Looking at the Country record, you can find dedicated fields for:

  • Full name
  • ISO-2
  • ISO-3
  • Local name (Latin characters)
  • Local name (Native characters)

The good news is that each of these field’s values are automatically configured to be accepted in text fields configured with AddressTools Premium. When the AddressTools trigger functionality is enabled the values will be standardized to a defined format on insert and update.

Let’s take a look at another example for acceptable data by talking about United Kingdom, or do I mean Great Britain, or England?… You get where I’m going…

State & Country picklists don’t support the inputs of these variations, and these variations also don’t fit into the five dedicated fields on the Countries object. This is where we introduce Alternative Country Names.

  • Whilst still looking at your existing country record, select Related.
  • Select Alternative Country Names.

This list may be empty depending on the country you’re looking at or because you only installed the sample dataset. Don’t worry, you can add as many records here as you find necessary. 

To add a new Alternative Country Name:

  • Select New.
  • Write the value into the Alternative Country Name field.
  • Ensure the Original Country field is populated with the Country.
  • Is Obsolete: Unchecked.
  • Select Save.

And it’s that simple, you’ve now added an Alternative Country Name that AddressTools will be able to identify during the standardization process.

The State object is configured similarly. To access States navigate to the related list on the Country record. For example, navigate to the United States Country record, select Related, and here you’ll find a list of states belonging to the United States. 

Each State record has a:

  • Full name
  • ISO code

An Alternative State Name object is available where you can add a list of acceptable values. After all, we can’t seriously expect all our users to spell Mississippi correctly every time… So practically speaking if there are common misspellings or abbreviations you find in your org you can add them here to be standardized.

That covers configuring all of the acceptable values. Now we need to define the formats for the data to be standardized to.

Defining the standardized formats

Whilst we’re still looking at Country and State record data, we’ll configure the State format first. 

This is managed on the Country record and can be controlled on a per-country basis. 

  • Navigate back to a Country record (i.e. United States).
  • Enable or disable Use Subcountry Code in State field.

This option can be enabled/disabled to standardize the state value to either its full name or ISO value (i.e. Texas vs TX).

Lastly, we need to define the Country format. This is an org-wide setting and applies to all country values.

  • Go to the AddressTools Administration tab.
  • Navigate to Settings in the left navigation.
  • Use the pencil icon next to Standardization Enabled.
  • Check Standardization Enabled.
  • Edit the Country Standardization Format to match the desired format.
  • Select Save.

Note: These settings can be changed at a later date if you need to change your format. You’ll then need to run one of the following jobs to standardize the data to the new format.

It’s configured, now what?

We have two options to mass standardize the data:

  1. Enable a trigger on the object, run a mass update and have the trigger standardize all the data during the update.
  2. Invoke a job via the Developer Console to export a standardized list of data that can be manually reimported into Salesforce.

Choose the approach that best suits you. If you’re unsure what route to take we have instructions below walking you through both.

Option 1: Create a trigger on the object and run a mass update.

We’ve configured all the standardization settings so now we need to tell the object to follow them. As we’re working with a custom object in this example we’ll need to create a new trigger in the org to invoke the AddressTools functionality.

A trigger is provided out of the box for the Account, Contact, Contract and Lead objects. Follow the relevant steps to enable or create a trigger for the object where your address block exists.

If you’re working with either of the Account, Contact, Contract or Lead objects:

  • Navigate to the AddressTools Administrator tab.
  • Select Settings from the left navigation.
  • Scroll to Trigger Settings.
  • Enable the trigger on the object you’re standardizing.
  • Select Save.

If you’re working with an object that isn’t Account, Contact, Contract or Lead:

  • Go to Setup.
  • Navigate to Object Manager.
  • Locate the Object you want to create the trigger for.
  • Select Triggers and New.
  • In the box, replace the existing code snippet with the following:
trigger ValidateOBJECTLABELCountryFields on OBJECTAPI (before insert, before update) {
    pw_ccpro.CountryValidator2.Validate(, Trigger.oldMap);  
  • Replace OBJECTLABEL with the label name of the object you’re creating the trigger for.
  • Replace OBJECTAPI with the API name of the object you’re creating the trigger for.
  • Select Save.

With the trigger enabled for the object, we need to turn on the standardization setting in the AddressTools Administration tab:

  • Navigate to the AddressTools Administrator tab.
  • Select Settings from the left navigation.
  • Under Feature Enablement, check the box for Standardization Enabled.
  • Confirm that the Country Standardization Format is set as you desire.
  • Select Save.

Before we do a mass update we can test the standardization functionality on our address block. 

  • Navigate to a record where your address block exists.
  • Edit the record.
  • Change the country text value to a variation of the value currently present (e.g. if the country is United States, change it to USA or US).
  • Save the record.

The record will standardize to the format specified in the settings. (If you entered the desired format, the value won’t change on save as it’s already in the expected format. Try changing to another format to confirm the test).

Before save:

After save:

Now the test has been confirmed we need to invoke the trigger on all existing records. This will involve running an update on every record in the object. There are many different ways that you can achieve this so if you can already think of one then do what you know best.

If you need some guidance, we have a separate article on how to run a “mass touch” using Salesforce Flows. Check it out here.

Once the mass touch operation has successfully run, all State and Country values that matched the AddressTools dataset will now adhere to your defined standardization format.

There may be some leftover values and this will require some manual intervention. If you find a repeat offender you can add the value to the Alternative Country or State Name objects and re-run the process to catch them.

Option 2: Export the standardized data for importing later

Before we start, it makes sense to see the result of these instructions so let’s take a look at what our exported file will contain.

For every record on the configured object that can be standardized, the data will be exported with the following data in the file:

  • Record ID
  • Current text field values (Old)
  • Standardized versions of the text field values (New). 

Note: The export will ignore records that are already in the desired format or that contain data that cannot be standardized (i.e. an unrecognized value).

To prepare AddressTools Premium to execute this export:

  • Navigate to the AddressTools Administrator tab.
  • Select Settings from the left navigation.
  • Under Feature Enablement, check the box for Standardization Enabled.
  • Confirm that the Country Standardization Format is set as you desire.
  • Add your email address to the Batch Verification Alerts Email Address field.
  • Select Save.

This process will need permission to send an email to the email address configured in the previous section. You may need to change your org’s Email Deliverability settings to support this.

To check/change your Deliverability settings:

  • Go to Salesforce Setup.
  • Search for Deliverability in the left search.
  • Select Deliverability from the left navigation.
  • Make note of your existing Access level, you can revert the setting back to this once you’re done.
  • Change Access Level to All email.
  • Select Save.

For some of you reading this guide, you may not have worked with the Developer Console before so follow closely and let’s execute some Apex! 

Note: If this is your first time we recommend doing this in a sandbox so you don’t affect any production data.

  • Go to the cog in the top right of your Salesforce page.
  • Select Developer Console.

The Developer Console window will open in a new window.

  • Select Debug | Open Execute Anonymous Window.
  • Under Enter Apex Code, type the code below 
pw_ccpro.BatchValidateAndGenerateCSV M = new pw_ccpro.BatchValidateAndGenerateCSV('OBJECTAPI');
  • Change OBJECTAPI to the API Name of your Object. We’ll be typing ‘Warehouse__c’.
  • Select Execute.

This will now begin the standardization process. The length of time it will take to execute will vary depending on how much data you have in your org.

Once the job is complete you will receive an email with a .csv attachment containing all of the standardized data from the address block ready for importing either into the existing fields or ready to migrate into your State & Country picklists. 

And there you have it – your standardized file is waiting for you! When you’re ready to import this data back into Salesforce, use an importing tool* of your choice and ensure to update the records matching the Record ID found in column A.

Warning: Be vigilant when running mass update operations in a production environment. Where possible backup your data first.

*Pssst if you’re looking for a new favorite importing solution, why not try out SimpleImport for this import job!


So there you have it, we’ve walked through how to standardize your existing data ready for the new custom address field type in Salesforce using AddressTools Premium.

If you have found this guide to be helpful, please ensure you share it with others so that they can learn how to standardize their address data stored in text fields. If it has saved you time then it may save them time too!

If you have any questions about AddressTools and any of its capabilities we’d love to hear from you. Get in contact with us at

How to populate a state value from a US ZIP Code using a Salesforce flow

Reducing manual data entry results in better user adoption, less friction for prospects and overall a better user experience. 

In this example we are going to create a Salesforce flow that will fetch the State value from an entered US ZIP Code and populate the address’ state field. This removes the (often neglected!) requirement for end users to enter a State value at point of record entry. The ZIP Code data is part of AddressTools Premium which is available on the AppExchange.

Follow along with our step-by-step guide by installing a free two-week free trial of AddressTools Premium.

Create a flow to automate State population

  • Go to Salesforce Setup | Flow.
  • Select New Flow.
  • Choose Record-Triggered Flow.
  • Search and select the object that you are configuring the process for.
  • Set Trigger the Flow When to A record is created or updated.
  • Select Done.

Set entry conditions.

  • Condition requirements All Conditions Are Met (AND)
  • pw_ccpro__BillingCountryLookup__c Equals United States
  • BillingState Is Null TRUE
  • BillingPostalCode Is Null FALSE 
  • When to Run the Flow for Updated Records Every time a record is updated and meets the condition requirements
  • Optimize the Flow For Fast Field Updates 

The flow will now be ready to start adding elements to.

  • Select Get Records and drag it under the Start element
  • Label Get ZIP 
  • Object ZIP Code 

Set entry conditions.

  • Condition requirements All Conditions Are Met (AND) 
  • Name Equals {!$Record.BillingPostalCode}
  • How Many Records to Store Only the first record
  • How to Store Record Data Automatically store all fields 

Add another element.

  • Select Update Records and drag it under the Get Records element
  • Label Update Account
  • How to Find Records to Update and Set Their Values Use the account record that triggered the flow
  • Set Filter Conditions None-Always Update Record

Set Field Values for the Account Record.

  • BillingState {!Get_ZIP.pw_ccpro__State__r.Name}

Make sure the elements are connected and Activate your flow. 



How can I run this for my historic data?

If you have existing records in Salesforce that you want to run this logic for check out our guide on how to run a mass update using Salesforce Flows.


Validate, standardize and verify your address data with our award-winning solution. Learn more and book a demo.

Verify addresses in a flow: Introducing the Address Verification Flow Component

Following Salesforce’s announcement that they will be retiring Workflow Rules and Process Builder, it’s clear that Flows are the future and the future is here to stay.

With that in mind, we are so excited to introduce our Address Verification Flow Component, now available on the AppExchange! Verify addresses in a flow using global postal authority data for over 240 countries.

Why should you verify addresses?

Did you know that verifying addresses up-front can reduce failed delivery rates by up to 70%? Improve customer experience and save wasted costs with verified addresses.

💡 Want to know more? Watch our 2 minute video: Why verifying addresses is important | Salesforce CRM.

Why should you verify addresses in a flow?

We’ve designed the Address Verification Flow Component to make it as easy as possible for Administrators to ‘hot-swap’ the vanilla Address component with our own component followed by a quick re-binding of any set flow variables.

So it’s easy to set up. How about some facts and figures too?

  • Create an exceptional user experience by reducing data entry time by 78% and errors by 20%.
  • Unlike Google, access global postal authority data such as Royal Mail, USPS, Canada Post for truly verified data, reducing failed delivery rates by up to 70%.
  • Autopopulate any address fields in 5 keystrokes or less.

The use cases

  • Digital Experience – Do you use an ecommerce checkout or a user registration portal? Verify addresses at the point of entry!
  • Internal Flow – Capture user addresses quick with type-ahead verified data. Perfect for Service Cloud users!
  • Endless possibilities – Wrap our solution in a custom Aura component for total flexibility!

Try out the Address Verification Flow Component

Why not start off with a free trial of the component?

  1. Install AddressTools Premium from the AppExchange (this is how you will manage your credit usage) 
  2. Install the Address Verification Flow Component from the AppExchange.
  3. Follow our brand new step-by-step setup installation walkthrough
  4. Drag and drop the component into your Flows and you’re ready to flow!

If you get stuck or have any questions, feel free to contact our Support team who are more than happy to help you:

Interested? Chat to us

The Address Verification Flow Component is an extension of our popular solution AddressTools. Pricing of the Address Verification Flow Component depends on your use case. Get in touch with us to discuss your requirements and we’ll get you the most accurate information!

AddressTools: feature release for PowerSearch

Our team has been working on some really exciting feature releases for AddressTools that will make your PowerSearch experience even better!

What do I need to know?

We’ve added two extra features to PowerSearch’s settings to help specify and focus your searches, and optimize your address data entry.

Why should I be excited?

Select a priority country so that search results from the selected country will be shown first. Here’s an example of USA set as the priority country.

And/or, choose allowed countries, so that search results are limited to only the countries you select.

How do I access these new features?

Simply update your AddressTools Premium package to use these new features. You will need to use version 7.94 of AddressTools which you can find via the AppExchange.

Need an extra hand? Check out our 4-step guide on how to upgrade an AppExchange app.

If you have any further questions, please contact us!


Interested in learning more? Check out our award-winning package for Salesforce. Harness the power of address standardization, validation and verification in your org.

AddressTools Premium: Configure verification settings

Improving the PowerSearch results

PowerSearch functionality by default will search in over 245 countries up to the premise-level. Whilst powerful, this can lead to the results being diluted, especially if you know you are only working within specific countries, or have one country that you primarily work within.

To combat this, AddressTools has two settings to improve the results and customize them to your requirements.

  • Allowed Countries – PowerSearch address verification will only return address results from the listed countries. All available countries will be searched if this setting is left empty. You have the ability to choose up to 80 countries.
  • Priority Country – PowerSearch address verification will prioritize displaying results from this country.

To access these settings:

  • Go to App Launcher | AddressTools Administration.
  • Select Settings from the sidebar.
  • Click the pencil next to Allowed Countries or Priority Country.
  • In Allowed Countries, type and select the countries that your business will be verifying addresses in.
  • If your organization has a country that you’d like to prioritize in the search results, select this country from the Priority County picklist.
  • Click Save.

Note: these two setting will only impact PowerSearch address verification. Automated address verification relies on the country value entered in an existing address.

Batch address verification alerts

Batch address verification runs behind the scenes. This can be a fantastic option to automate address verification in your organization, however errors can happen! For example when a record is verified, an update will be pushed to the record when a result has been found. If, for whatever reason, this record cannot be updated, you need to know the operation has failed!

To ensure alerts are provided in the event of an error, a dedicated email address can be added to the AddressTools settings. By default the email address of the installing user will be populated in this field but you may wish to change this.

  • Go to App Launcher | AddressTools Administration.
  • Select Settings from the sidebar.
  • Click the pencil next to Batch Verification Alert Email Address.
  • Enter the email address to send the alerts to.
  • Click Save.

Note: your organization may be required to change the Access to Send Email organization setting to All email. This is located in Setup | Email | Deliverability.

Back to the AddressTools Premium installation walkthrough