Please note: this requires version 1.270 or greater for the Natterbox app.
Creating or Refreshing a New Sandbox
Whether you are creating a new sandbox or refreshing an existing sandbox, you will need to create a sandbox template to make sure you have removed the Natterbox objects.
Please note: If you do not remove these objects before creating or refreshing your sandbox, you will experience severe issues and may not be able to fully set Natterbox up in that org.Object Name
Object API
User Voicemail
nbavs__UserVoicemail__c
Once your sandbox has been created navigate to the admin home tab of Natterbox
In the scheduled jobs section, click on the ‘Start Job’ button next to Reset Sandbox Job (This job is only available in Sandbox instances)
Natterbox will now delete all data in the following objects and will reset your connection to the Natterbox servers
AvailabilityProfileState__c
AvailabilityProfile__c
CallFlow__c
Device__c
UserPolicy__c
Group__c
User__c
Sound__c
Once the job has run when you try to access a Natterbox page you will be presented with the opportunity to enter a new Activation Token - you can get this token and OAuth e-mail (which you will use in the next step) by raising a case with the customer support team.
Once you have entered the activation token, you can click the link OAuth link in the e-mail sent from Natterbox.
Now your Natterbox installation is ready to configure again.
Setting up Natterbox in a fresh Sandbox
You will need to reach out to your account manager to request some licences and phone numbers for your sandbox.
Once the licences have been assigned to your org, make sure to click the ‘Reload Subscriptions’ button from the Admin Home page.
Once the phone numbers have been assigned, make sure to click the refresh button from the Phone Numbers tab. Do not use the ‘New Phone Number’ button.
You can now recreate any users, groups, availability states you would like to replicate from production.
You can now create any routing policies that you would like. If you have exported a policy from production (or another org), be aware you will need to fill in the details that were removed before like the group or the extension before being able to save the policy.
FAQ
Do I lose all of my metadata when carrying out the steps above?
Unfortunately yes, the steps above removes all metadata, it will be just like a fresh install of Natterbox. You are able to restore some objects through Data Loader and you can restore routing policies by following this guide.
Why do I have to enter a new Activation Token and oAuth connector?
Natterbox has a one-to-one relationship with an instance of Salesforce and an account on our servers. When you refresh or create a new sandbox fundamentally a new instance of Salesforce is being created (you will notice your orgID changes) therefore we need to re activate your Natterbox installation and create a new link to our servers.
Do I have to follow the above steps every time I create a new Sandbox or Refresh an existing one?
Yes, every time you Refresh or Create a new Sandbox you will need to carry out the steps above.
Why do I have to run the scheduled job, why can't I just remove those objects from the Sandbox template?
You can also do that, however the scheduled job updates other custom settings for Natterbox which need to be changed when a Sandbox is created/refreshed. So even if you have removed the objects from the template you will still need to run the scheduled job.
What will happen if I don’t remove the objects listed ?
You will need to delete the package and re-install it. To do that, you will need to manually remove all the references to the Natterbox objects and fields. This can take a long time and is not a supported process. Using a template to remove the Natterbox objects and data is the only supported method for sandbox refresh.
Why can't Natterbox run a scheduled job to remove all the Metadata for me?
This could be possible, however with objects such as Phone_Event__c and Insights__c have the potential to carry very large amounts of metadata, if we run a job to to remove all this data we could end up delaying other scheduled jobs that are due to run.