How to: deploy SimpleImport and Managed Import to users in your organization


SimpleImport has three main implementation paths:

  1. SimpleImport (requires API Enabled) [Premium, Free]
  2. Managed Import with API Enabled (requires API Enabled)
  3. Managed Import with Apex Rest Services (requires Apex REST Services but not API Enabled)

Different paths require their own dedicated permissions which need to be assigned to the user/profile in Salesforce to leverage functionality. This article has been broken down to provide you with all the permissions required for your desired approach.

SimpleImport [Premium, Free]

Apex, Visualforce and Custom Settings

The user/profile will need access to all Apex Classes with the prefix:

  • pw_si__ [Premium]
  • pw_sifree__ [Free]

The user/profile will need access to the following Visualforce Pages:

  • pw_si__SimpleImport [Premium]
  • pw_sifree__SimpleImport [Free]

The user/profile will need access to the following Custom Setting Definitions:

  • SimpleImport Settings [Premium, Free]
  • Managed Import Settings [Premium]

Managed Import (with API Enabled or with Apex REST Services) [Premium Only]

Apex, Visualforce and Custom Settings

The user/profile will need access to all Apex Classes with the prefix:

  • pw_si__

The user/profile will need access to the following Visualforce Pages:

  • pw_si__SessionIdPage

The user/profile will need access to the following Custom Setting Definitions:

  • SimpleImport Settings
  • Managed Import Settings

License Allocation [Premium, Free]

After deployment to production, a licenses must be allocated to each users.

This can be managed in Setup | Installed Packages | Manage Licenses next to SimpleImport.

API Enabled or Apex REST Services? [Premium Only]

For Managed Import, if there is the option to use the solution with API Enabled, then this is recommended. For some implementations, API Enabled is not preferred, such as community implementations. For these cases, Apex REST Services must be enabled on the profile as the fall back option.

Contact Us

If you have followed this article and are still experiencing issues with configured SimpleImport or Managed Import, reach out to where a member of the team will be happy to assist.

PhoneTools: Formula Field

Please note: PhoneTools has two features: Click to Call and SMS functionality, and Phone Screening functionality. This installation article will cover Formula field creation which is relevant to Phone Screening.

Formula Field Configuration

We understand that you won’t want to screen every number in your Salesforce Org, so we provide the ability to include/exclude numbers based on a true or false formula.

For this example, we want to exclude any number that sits on a record where the Billing Address is not “United Kingdom” or is left blank, as we are going to make an assumption that the number on the record won’t be British.

Note that you can configure your formula to whatever your own requirement is giving you full control over your screening process.

Creating a Formula

Navigate to Setup and select Object Manager. Once the page has loaded, select the object you want to create the formula for by clicking the Label.

Click Fields & Relationships and then select New.

Type your formula into the field which must result in 0 or 1.

0 = Number doesn’t require screening 1 = Number does screening

Here is a basic formula used for this example:

  • IF(OR(BillingCountry=’United Kingdom’,ISBLANK(BillingCountry)), 1, 0)

Select Next and then ensure that All Profiles are granted Visibility to the formula. Select Next and uncheck adding the formula field to your page layout. Then press Save to finish.

Adding the Formula to the Phone Field

Navigate to the Salesforce App Launcher and then select PhoneTools Administration under All Items. Once loaded, select the Installation sub-tab.

Scroll down to the Fields to Screen section and select Edit next to the field that you just configured your formula for.

Scroll down the Formula Field picklist to find your new Formula’s API name. Once chosen, select Save.

Now when checking a record that doesn’t meet the formula criteria, the TPS and CTPS alert bubbles will display grey with a Not Required status.

Like the sound of PhoneTools?

Great! PhoneTools is our 5* app for Salesforce that lets you screen phone numbers against UK TPS and CTPS to keep you PECR compliant. All within Salesforce with no coding required!

Try out PhoneTools for free on the AppExchange.

Got questions?

If you are experiencing any issues, or have any questions, please reach out to where a member of our team will be happy to assist.

How to: setup automated international address verification via Process Builder

Before getting started:

  • Requires an active verification credits subscription in your organization.
  • The address block requiring verification must be configured in the AddressTools Administration Address Blocks.
  • This feature is only suitable for low-volume data upsertion due to dependencies on ‘future methods’. Check out Scheduled Address Verification for high-volume implementations.

Create a New Process

Navigate to Setup | Process Automation | Process Builder.

Select New.

Provide a Name and API Name.

Set The process starts when to A record change.

Press Save.

Choose Object

Select Add Object to open the Choose Object panel.

Select Find an object…

Choose the relevant Object.

Under Start the process, select the appropriate option for your use case from the available options.

Press Save.

Add Criteria

Select Add Criteria to open the Define Criteria panel.

Name the criteria using the Name Criteria field.

Set Criteria for Executing Actions to Conditions are met.

Under Set Conditions, select the Find a Field and select the associated Address Status field for the address block and press Choose to confirm.

Set Operator to Equals.

Set Type to Picklists.

Set Value to Not checked.

If you want to add more criteria, select Add Row.

Set Conditions to All of the conditions are met (AND).

Press Save.

Add Action

Select Add Action to open the Select and Define Action panel.

Set Action Type to Apex.

Name the action using the Action Name field.

Set Apex Class to Premise Level Address Verification.

Set Country-field API name | Type to String.

Set Country-field API name | Value to the address block’s country field API name.

Set ID of record to validate | Type to Field Reference.

Select Find a field… to open the Select a Field modal.

Select the Object’s ID field.

Select Choose.

Select Save.

Activate and Test

Select Activate.

Select Confirm.

Insert a record into your object with a complete address block and the necessary criteria to meet to rules configured in the Add Criteria section. Once the record has been inserted, you may need to refresh the page to display the updated status,

Contact Us

If you are experiencing any issues with the setup, please reach out to: where a member of our team will be happy to assist.

Back to the AddressTools Premium installation walkthrough

ManagedImport: Admin Setup Guide

This article will cover:

  • Introduction to ManagedImport.
  • Creating a saved mapping in SimpleImport.
  • Adding the ManagedImport Lightning Component to a Lightning App Page.


SimpleImport comes packaged with the ManagedImport lightning component and is also available as a separate extension package via the Salesforce AppExchange. This component allows you to drag and drop an importing widget into any Salesforce Lightning App Page, including Digital Experiences. This provides your internal and community users the ability to insert and update records into Salesforce only by uploading a file… The tool then does the rest!

Creating a saved mapping

We’ll need to begin the configuration by creating a new spreadsheet template. This template must contain:

  • Column headings in row 1 for mapping to Salesforce.
  • A row of sample data in row 2.

Note: If you’re working with a multi-sheet workbook, the sheet name can be stored for use with ManagedImport. If this is the case for your scenario, make sure you correctly name the sheet. If you are using a .CSV or a single sheet workbook, naming the sheet is not required.

To get started:

  • Create a new template file using the requirements notes above.
  • Save the file to your computer.
  • Refer to the SimpleImport User Guide to upload the file to SimpleImport.
  • Follow the same user guide to begin an import and save the mapping.
  • Once a mapping has been created you can cancel the import in SimpleImport.

We now have a Saved Mapping and we need to fetch its unique ID for use with the ManagedImport Lightning Component.

  • In SimpleImport, select Preferences.
  • Scroll to Mapping List.
  • Locate the mapping for use.
  • In the ID column, copy its contents and make a note of it for later.

Adding the ManagedImport Lightning Component to your page

The Lightning Component can be added to any Lightning App Page or Digital Experience in your Salesforce org. The following steps will show configuration of the component on a home app page, but similar steps can be replicated across any location where Lightning Components can be used.

  • Navigate to Setup.
  • Select Lightning App Builder from the setup menu.

If you already have a custom Lightning Page where you want the component to sit on, select Edit next to it, alternatively, select New and follow the steps through to creating a new page.

Starting from the component menu on the left of the screen:

  • Select and drag the Managed Import custom component into your layout.
  • In the design parameters menu on the right of the screen, type your mapping ID into the Mapping ID field.

Five additional design parameters are available, edit them to meet your desired requirement:

  • Button Text – for renaming the button’s text, leaving it blank will populate the button with “Import Records”
  • Component Title – Give the component a title so your users can spot it, leaving it blank will hide the title and import icon.
  • Component Message – A text area provided allowing you to write a message for your users to read, leaving it blank will hide the text area.
  • Pass custom record ID intro this import - Refer to How to use the Record ID tag with ManagedImport. If not using Record ID tags this field can be left blank.
  • Pass current record ID into this import – Refer to How to use the Record ID tag with ManagedImport. If not using Record ID tags this box can be left unchecked.

When the component has been set up as required, Save and Active the page.

The component should now be usable when viewing the page and read to start importing!

Contact us

If you are experiencing any issues with the setup of your ManagedImport component in your Org, please reach out to where a member of our team will be happy to assist.

How to: configure functionality for a Custom Address block (legacy interface)

This article will cover how to configure your custom address block(s) with AddressTools allowing for on-save standardization, validation and also all interactive functionality.

Note: Functionality for custom fields and address blocks is only available for AddressTools Premium. If you are using AddressTools Free, you can trial our AddressTools Premium application to take advantage of the features covered in this article.

In the following example, we will be covering how to configure a custom address block that we have created on a custom object named Locations. All the information gained in the article can be translated to any other object of your choice including Salesforce’s standard objects.

Adding the Address Block to Fields to Validate/Standardize

With an address block already created on our Locations object, we need to add it to the AddressTools Fields to Validate/Standardize section.

Go to the AddressTools Administration tab and select the Settings sub-tab. Once on this page, locate the Fields to Validate/Standardize block and select Add.

Continue to the next page to see the Field Mapping page.

Below you can see all of the settings covered in the Field Mapping page:

First, start in the Select Object settings and choose the object you want to configure. Then if applicable, choose a Record Type if you’re adding functionality to only records of a certain type. If the Record Type field is left blank, the settings will cover all Record Type for the object. For this example, I have chosen the Record Type Delivery Address, as these are the records that I want AddressTools functionality to be active on.

Next, we want to link all the required fields within the Field Mappings section. Please see each field and its supported field type below:

  • Country – Text Field (255)
  • State – Text Field (255)
  • City – Text Field (255)
  • Street – Text Field (255)
  • ZIP Code – Text Field (255)
  • Address Status – Picklist

Values: Not checked, Not matched, Parsed but not found, Ambiguous, Corrected, Verified. Restrict picklist to the values defined in the value set: False.

  • County – Text Field (255)
  • Country Lookup – Lookup (Country)
  • State Lookup – Lookup (State)
  • Zip Code Lookup – Lookup (ZIP Code)

A completed Field Mappings section should look similar to the following, but your field names may differ.

Note: not all fields are required, for example, Address Status, County, Location Accuracy and Location Source fields are only required when using Premise-Level Address Verification.

Creating a Trigger for Validation & Standardization

AddressTools comes pre-configured with a trigger for AccountsContactsContracts and Leads. If you are configuring an address block on any other object in your Org, you will be required to create a new trigger to fire the AddressTools functionality on record insert and update.

Start by going Setup and navigate to the triggers section for the object you are dealing with. For standard objects, this is located in Customize → Object Name → Triggers, and for custom objects, this is located in Create → Objects → Object Name and then scrolling to find the Trigger section on the loaded page.

Select New to create a new trigger on your object.

Paste the following code into the text area provided

trigger ValidateLocationCountryFields on Location__c (before insert, before update) { pw_ccpro.CountryValidator2.Validate(, Trigger.oldMap); }

Rename the ValidateLocationCountryFields to a name that is suitable for your org, we recommend simply changing Location to the label of the object you’re dealing with.

Next, change the Location__c to the object’s API name that you’re working with.

Once these changes have been made, select Save.

Note: each object only requires one trigger removing a requirement to create multiple triggers for multiple address blocks that exist on the same object.

Contact Us

You will now find that your custom address block has been successfully configured with all AddressTools functionality. If you are experiencing any issues with the setup, please reach out to where a member of our team will be happy to assist.

How to: populate a Regional Data Field based on a Country, State or ZIP entry

Note: Functionality for populating regional data based on a country entry is only available for AddressTools Premium, if you are using AddressTools Free then you can trial our AddressTools Premium application to take advantage of this feature plus many more that it includes.

This example will demonstrate creating a Sales Territory field on the AddressTools Country object that a Lead will then lookup. The same steps can be followed for the AddressTools Country, State and ZIP Code objects provided with the package.

Creating a Custom Text Field on an AddressTools Regional Data Object

The first step is to create a custom text field on the AddressTools Country object.

Navigate to Salesforce Setup | Object Manager | Country | Fields & Relationships | New.

Select Text.

Select Next.

Enter a Field Label and Field Name to meet your requirements, in this example, we’ll enter Sales Territory.

Select Save.

Creating a Formula Field to Lookup the New Field Value

The following section requires regional data lookup fields to be configured within AddressTools. If you have not yet configured lookup fields for your address blocks, see the Configure Lookups section in the AddressTools Premium Installation Guide.

Navigate to Salesforce Setup | Object Manager | Leads | Fields & Relationships | New.

Choose Formula.

Select Continue.

Provide the new field with a Field Label and Field Name (it is recommended to provide a name that matches the field created in the first section of the article).

Choose Text as the return type.

Select Next.

On the formula page select Advanced Formula and then Insert Field.

You will need to select the field created in the first section.

In this example, we choose Lead > Lead Country Lookup > Sales Territory

Note: your lookup field name may differ from the one in this example.

When highlighted, select Insert.

Select Next and provide visibility to all the necessary profiles.

Select Next.

Ensure the field is added to the desired Page Layout.

Select Save.

Now with the formula field created and on the page layout, when the record is saved with a valid country value, the value from the associated country record will now appear in the lookup field.

Using this article, you can now create Country, State and ZIP Code based formula fields for any additional data you wish to add to the Country, State or ZIP Code data installed with the solution!

Contact Us

If you have any questions in relation to this article, contact us at: We will be happy to answer any questions or problems that you may have.

How to: update the Fields and Objects available in SimpleImport

SimpleImport caches field and object data on its initial load per Salesforce session. If a field or object is created or edited during that time of an active session, you must log out of your Salesforce org and log in again for the changes to be acknowledged. When you reload SimpleImport in the new session, the changes to the organization’s metadata will become available.

How to: deploy AddressTools to users in your organization


With AddressTools now installed in your Org, it is essential to provide your users with the correct permissions to use the solution.

This article will explain what permissions are required for users to be able to use AddressTools functionality.

It is recommended that a permission set is created for AddressTools so that it can be applied to multiple users/profiles but these settings can be directly applied to the profiles.

Object and Field Permissions

Setup each object and associated fields with the permissions noted in the table below.

ObjectObject PermissionField NameField Permission
UsersN/AQuickComplete CountryRead
CountriesView AllAll fieldsRead
StatesView AllAll fieldsRead
ZIP CodesView AllAll fieldsRead
Time ZonesView AllAll fieldsRead
Alternate Country NamesView AllAll fieldsRead
Alternate State NamesView AllAll fieldsRead

For versions after 7.53

ObjectObject PermissionField NameField Permission
ZIP Code CountiesView AllAll fieldsRead

Apex, Visualforce and Custom Settings

The user/profile will need access to all Apex Classes with the prefix:

  • pw_ccpro__

The user/profile will need access to the following Visualforce Pages:

  • pw_ccpro__CountriesJavaScript
  • pw_ccpro__SessionIdPage

The user/profile will need access to the following Custom Setting Definitions:

  • CountryComplete Settings
  • AddressTools Fields to Validate

License Allocation

After deployment to production, a licenses must be allocated to each users.

This can be managed in Setup | Installed Packages | Manage Licenses next to AddressTools.

API Enabled

Users wishing to leverage the interactive functionality available in the tool require the permission API Enabled.

Back to the AddressTools Premium installation walkthrough

How to: configure different AddressTools features for separate users or profiles

If you have a basic setup configured for AddressTools Free or Premium, you will have noticed that all users have the same settings (such as validation enabled for everyone). However, you may not want all users to have access to such features. This article will explain how to exclude said users from such features.

  • Visit the Salesforce Setup page.

  • Within the Quick Find search bar, search for Custom Settings
    • Locate ‘CountryComplete Settings’ and select the Manage action next to it
    • This will then display the custom settings for the application, select New to create a new custom setting.

    Note: Some custom settings are excluded in the list below, these are due to being made obsolete as the package continues to grow.

    1. Enable Validation: Global toggle for validation rules such as country mandatory or state mandatory per country.
    2. Enable Standardization: Global toggle for country and state standardization.
    3. Disable Account Trigger: Disable the managed trigger that invokes AddressTools functionality on the Account object.
    4. Disable Contact Trigger: Disable the managed trigger that invokes AddressTools functionality on the Contact object.
    5. Disable Lead Trigger: Disable the managed trigger that invokes AddressTools functionality on the Lead object.
    6. Disabled Pages: For classic users, disable the javascript from loading on those pages.
    7. QuickComplete Country Enabled: Enable QuickComplete Country.
    8. Only Operate When Changed: Only fire AddressTools standardization and validation for records where an address field has changed.
    9. Run Trigger Once: Run the AddressTools apex once per transaction. Assist in reducing SOQL queries.
    10. Store Country Value As: When country standardization is enabled, store the country value in the specified format (additional information is provided in the tool-tip).
    11. Allowed Search Country Codes: A comma-separated list of country ISO-2 codes to limit the PowerSearch results to. Leaving this field empty will search all available countries. (i.e. entering GB,US,CA will only display results for United Kingdom, United States, and Canada).
    12. Search Result Preferred Country Code: Enter a country ISO-2 code to add weight to PowerSearch results (i.e. entering US will favour recommending results from the United States).
    13. ZIP Code Lookup Enabled: Enable ZIP Code Lookup.

    • Within the custom settings form, select the user/profile you want to have dedicated settings configured for.
    • Customize the settings in the custom settings interface to meet the desired user/profile requirements. For example, leave everything disabled to bypass functionality.
    • Select Save.

    Your new custom settings will now show within the CountryComplete Custom Settings page, you can edit these by selecting the Edit action.

    • If the solution doesn’t appear to update for the user/profile that was recently changed, ensure they clear their browser cache and try again.

    Contact Us

    If you are having any trouble implementing this feature, please email us at:

    AddressTools Premium: Purchase address verification credits

    Address verification credit pricing

    Purchasing address verification credits is nice and simple, you’ll need one credit per address you verify, so we advise making a rough calculation to how many credits you’ll need for a year (but don’t worry if you’re short, you can always top-up your account if you’re running low).

    The more credits you buy will result in a lower cost per credit, you can find our credit pricing guide here.

    How to buy address verification credits In-App

    When you’re ready to purchase address verification credits, you can do so by credit card In-App.

    Note: A payment handling fee of 8% is added to any purchase made with a credit card. For payment via wire transfer, or if you require a custom quote, see the request a quote section.

    • Go to AddressTools Administration | Licensing & Credits.
    • Under Address Verification Credits, select Quote.
    • For either 5,000 or 10,000:
      • Select Quote under either 5,000 or 10,000 to add to your basket.
      • You will be redirected to your MyCommerce basket.
      • Enter your Billing Information.
      • Enter your Payment Information.
      • For us to associate your purchase with your Salesforce environment, enter your Salesforce Organization ID under the specified field in Additional Ordering Information.
      • Select Buy Now.
    • For a quantity over 10,000:
      • Under Custom, type the quantity.
      • Select Quote to generate an email to
      • Add any additional notes to the body of the email and Send.
      • A custom invoice will be generated for you by a member of the ProvenWorks team.

    If you run out of credits or predict you’ll need some more, you can come back to this page any time to top-up, or speak to your ProvenWorks Account Manager if you already have an active subscription.

    Note: After any credit purchase, a member of the ProvenWorks team will be in contact to verify the organization where you’d like to apply the credits.

    Request a quote for address verification credits

    Our team at ProvenWorks are here to help and will be able to work with you to purchase verification credits for your organization. If you’re buying credit volumes in excess of 10,000, we recommend speaking direct with our team.

    Additionally, if you would like to:

    • Pay by wire transfer.
    • Add a Purchase Order Number to an invoice.
    • Add credits mid-year.

    …or if you would prefer to deal with a human, send an email to listing the amount of credits you’d like to purchase. A member of the sales team will get back to you to with a custom quote for your approval. Once signed-off, you will receive an invoice to be paid.

    <– back to AddressTools Premium installation walkthrough.