Data Share with a CXone Mpower Snowflake Account
If you haven't already done so, contact your Account Representative to enable CXone Mpower Data Share. Tell them you want to set up a new CXone Mpower Snowflake account.
Data Share setup differs based on whether you're using a CXone MpowerSnowflake account or if you have your own Snowflake account. You make this choice prior to setup and you can only change it by working with your Account Representative.
Create a CXone Mpower Snowflake Account
Required permissions: Cloud Data Share On
-
Click the app selector
and select Admin.
-
Go to Account Settings > Data Share.
-
Click Create Account.
-
In the confirmation window, select Yes, I agree and click Confirm. The account creation process can take up to 45 minutes. You can continue to use CXone Mpower for other tasks while you wait.
-
Periodically check Notifications
in the toolbar on top of the screen. When a new notification appears, verify that your account creation was successful. If your account creation failed, don't try again. Instead, contact CXone Mpower Support.
-
On the Data Share page, click Generate New Link to set up your Snowflake account password. When the link appears in a pop-up, click Copy URL. Paste the URL in a new browser window or tab. Set your Snowflake password.
-
From the Data Share page, add the IP addresses and IP address ranges you want to give access to your Snowflake data. If you don't add any IP addresses, you will not be able to access your Snowflake account.
CXone Mpower doesn't verify that your entries are real IP addresses. It only verifies that the entry formats are valid. When a user logs in to your CXone Mpower Snowflake account, CXone Mpower verifies that attempts to pull data are coming from one of the IP addresses in your allowlist.
- On the Data Share page in CXone Mpower, scroll down to IP Range.
- In the text box, type the IP addresses and IP address ranges you want to add to the allowlist in CIDR notation. If you're adding more than one at the same time, separate each entry with a comma.
- Click Add.
- Once CXone Mpower confirms each IP address and range is a valid format, click Submit to apply them to your CXone Mpower Snowflake account.
-
From the Data Share page, copy the Access URL. Paste the URL into a new browser tab or window.
-
Log in to Snowflake. Use the CXone Mpower Snowflake Username and the password you just created.
-
Once you're logged in, click CXONE_DATASHARE_<BU_ID> on the left to begin navigating the CXone Mpower shared data objects.
Manage CXone Mpower Snowflake Account
When you create a Snowflake account through CXone Mpower, you will become dependent on CXone Mpower for some of the maintenance tasks for the account. You will need to contact your Account Representative if you want to:
-
Change the warehouse size.
-
Reset your password if you allow it to expire. Password expiration happens 90 days after your most recent password change.
If you are using Data Share with a CXone Mpower Snowflake account and no longer want these dependencies, contact your Account Representative for help arranging your own Snowflake contract.
Manage Data Access Allowlist
Required permissions: Cloud Data Share On
Use this section to add IP addresses and IP address ranges to your allowlist. This enhances security by limiting CXone Mpower Snowflake data access to only users logging in from the IP addresses you specify.
CXone Mpower doesn't verify that your entries are real IP addresses. It only verifies that the entry formats are valid. When a user logs in to your CXone Mpower Snowflake account, CXone Mpower verifies that attempts to pull data are coming from one of the IP addresses in your allowlist.
- On the Data Share page in CXone Mpower, scroll down to IP Range.
- In the text box, type the IP addresses and IP address ranges you want to add to the allowlist in CIDR notation. If you're adding more than one at the same time, separate each entry with a comma.
- Click Add.
- Once CXone Mpower confirms each IP address and range is a valid format, click Submit to apply them to your CXone Mpower Snowflake account.
Integrate with Storage
Required permissions: Cloud Data Share On
Use this section if you want to export data from Data Share into your own storage. This enables you to copy CXone Mpower data from your CXone Mpower Snowflake account to your own AWS S3 bucket. From there, you can download the data to your own data warehouse or BI tool.

use role dl_customer; use database cxone_export; use schema export_data; create stage s3_unload_stage storage_integration = dl_s3_integration url = 's3://destination-bucket/'; -- 2. Export agent dim // SP and Task to unload agent DIM create or replace procedure unload_agent_dim_sp() returns string not null language javascript as $$ var sql_command = ""; var curDate = new Date().toISOString(); var sql_command = sql_command.concat("copy into @s3_unload_stage","/agent_dim/", curDate,"/"," from cxone_shared.acd.agent_dim_view overwrite=true;"); var statement = snowflake.createStatement( {sqlText: sql_command} ); var result_set = statement.execute(); return sql_command; // Statement returned for info/debug purposes $$; create task unload_agent_dim_task warehouse = dl_export schedule = 'using cron */5 * * * * UTC' as call unload_agent_dim_sp(); alter task unload_agent_dim_task resume; alter task unload_agent_dim_task suspend; -- 3. Export Contact Type Dim // SP and Task to unload agent DIM create or replace procedure unload_contact_type_dim_sp() returns string not null language javascript as $$ var sql_command = ""; var curDate = new Date().toISOString(); var sql_command = sql_command.concat("copy into @s3_unload_stage","/contact_type_dim/", curDate,"/"," from cxone_shared.acd.contact_type_dim_view overwrite=true header=true;"); var statement = snowflake.createStatement( {sqlText: sql_command} ); var result_set = statement.execute(); return sql_command; $$; create task unload_contact_type_dim_task warehouse = dl_export schedule = 'using cron */5 * * * * UTC' as call unload_contact_type_dim_sp(); alter task unload_contact_type_dim_task suspend; // 'watching unload tasks status' show tasks; select * from table(information_schema.task_history()) order by scheduled_time DESC;

Resource Name | Name | Details |
---|---|---|
Role | DL_CUSTOMER | The role assumed when running SQL queries. This role must have permissions to create STAGE, PROCEDURE and TASK. |
Shared Database |
CXONE_SHARED |
All objects will be shared with this database. Users can read data from the shared views of this database. |
Export Database | CXONE_EXPORT | You can create new resources under this database. |
Export Schema | EXPORT_DATA | The schema under the CXONE_EXPORT database. All new resources go inside this schema. |
Storage Integration | DL_S3_INTEGRATION | Enable exporting data to an AWS S3 bucket. Once enabled, you can create the stage using this storage integration. |
Warehouse | DL_EXPORT | The name of the warehouse that runs all SQLs . |
-
On the Data Share page, enter your AWS details for S3 Path and IAM Role.
Learn more about fields in this step
Field Details S3 Path The URL to your AWS S3 bucket. IAM Role
An IAM role with write access to your AWS S3 bucket. For information about configuring an IAM Role, see the Snowflake documentation.
-
Click Save.
-
Create a stage in Snowflake. Update your role with AWS IAM user and external ID as described in the Snowflake documentation. The storage integration name is dl_s3_integration.
create stage __STAGE_NAME__ storage_integration = dl_s3_integration url = '__S3_PATH__';
-
Create the store procedure. See the Snowflake documentation for help creating the store procedure and creating the copy into stage SQL statement for the store procedure.
create or replace procedure __STORE_PROCEDURE_NAME__() returns string not null language javascript as $$ var sql_command = ""; var curDate = new Date().toISOString(); var sql_command = sql_command.concat("copy into @__STAGE_NAME__","/path/", curDate,"/"," from cxone_shared.__SCHEMA__.__VIEW_NAME__overwrite=true header=true;"); var statement = snowflake.createStatement( {sqlText: sql_command} ); var result_set = statement.execute(); return sql_command; $$;
-
Create a task. See the Snowflake documentation to learn about tasks and for help creating the task.
create task __TASK_NAME__ warehouse = dl_export schedule = 'using cron */30 * * * * UTC' -- Give any required cron expression. for example we have given cron for every 30 mins as call __STORE_PROCEDURE_NAME__(); alter task __TASK_NAME__ resume;
Access CXone Mpower Data
- Open your Snowflake web interface.
- Go to Data Products > Private Sharing. You should see a CXone Mpower share.
You should see all shares available in your account. The Database column shows the name of the database created from the share. You can view and query the objects in the shared CXone Mpower database just as you would any other database in your account.
If creating the share fails, you receive a failure notification in the top right corner of the screen . Contact your Account Representative for assistance.