Overview
Piano has two development environments: a Sandbox environment for testing on your staging website and a Production environment for managing Piano on your public-facing website. Once you have partnered with Piano, a representative will create both your Sandbox and Production environments and register any team members you wish to have access. The login and access information will be provided to you so that you can begin getting a feel for the environments.
During setup, you'll spend most of your time in the Sandbox environment testing Composer experiences and Subscription Management + Billing features. However, you'll also want to add Piano JavaScript to your production website early in the implementation process because that will allow for us to collect information about the size and composition of your audience in advance of your public launch. That user behavior data will also inform the site experiences you design.
Please note that we do not run any scheduled tasks in Sandbox accounts. Therefore, anything that should run in the future based on date or time will not run, no emails will be sent based on that event.
The Sandbox environment is intended exclusively for testing and development purposes and is not covered by any formal Service Level Agreements (SLAs) applicable to the Production environment.
Sandbox Limitations
Note that due to the nature of the Sandbox environment, some features that have full functionality in Production are limited in Sandbox. These features are detailed below:
Consumer Emails: Emails generated using Sandbox are not sent to the associated users. The reason for this is you may have real user accounts registered in your Sandbox that you do not want to be targeted with confusing emails while you are trying to compose and test an experience. The emails are still generated, and any specific email can be viewed by clicking Users→All Users, selecting a specific user from the list to whom the desired email was sent, and clicking the "Emails" tab from that user's information screen.
Please note, that the exceptions here are any "X days" notification emails and the "Subscription expiration" email, which are not being generated.
In the Email Confirmation notification, the previous_user_url variable will only contain the homepage URL in Sandbox. It works as expected on Production, showing the URL the end user was browsing before the conversion.
Due to certain processes being emulated on Sandbox, the email notification "Identity Management user created by publisher" is sent twice when a user is created via the Piano dashboard on Sandbox.
Webhooks: Webhooks associated with Sandbox accounts are not automatically fired. To test the functionality of webhooks in Sandbox, you can follow Manage→Webhooks, click on the ellipses next to the Webhook you would like to test, and click "Resend." This ensures that Webhooks are not fired unnecessarily every time you make adjustments to your system.
Please note, that access_ended webhooks are not being fired on Sandbox at all.
Cloudflare for CDN: Because Sandbox is only meant for testing purposes and not for handling excessive traffic, Content Delivery Networks are not functional. Cloudflare is active in Production and results in high traffic capacity for live sites (i.e. Piano will perform significantly more quickly in Production than in Sandbox environments).
Recurring Payments: Recurring payments do not process in the Sandbox environment. Any subscriptions ordered for testing purposes will only be processed at their onset and will not renew automatically.
Last Visit and Last Login: The last_visit and last_login response fields are not returned in Sandbox when calling the /publisher/user/get API endpoint.
Dates calculation may differ in Sandbox environment as it is running in a different timezone from the production environment. It may sometimes cause renewal dates moving to the previous/next date, billing plan representation errors (dates slipping into the previous/next date). Please note that the Sandbox environment’s database operates in the America New York (UTC-5) timezone, rather than UTC. As a result, when using the reports API in the Sandbox environment, the timestamps will reflect UTC-5 instead of UTC.
Scheduled Tasks: We are not running any scheduled tasks in the Sandbox. This includes renewals, Double Opt-In unverified user deletions, receipt verification and validation, Site Licensing notifications and others.
User States: User states are not automatically updated in Sandbox after, for example, a cancellation of an order or subscription. You can manually update these states by clicking Users→All users, clicking on the user you would like to update, going to the "Subscriptions" tab, clicking on the subscription that must be updated, and clicking "Cancel."
External service terms: The verification for receipts of external service terms is not running on Sandbox. This means, that you will be able to record two or more external conversions using the same receipt. On Production, the receipt is verified properly.
Reports: The Composer Activity report and the Churn Prevention report is not being generated on the Sandbox. Also the Email reporting under the Reports tab does not show any data.
Bulk user imports: Bulk user import reports available in the Download Center, under the "Bulk User Import" tab remain indefinitely in the “In progress” status. While users are successfully imported, the report does not progress to the “Completed” status due to the lack of a scheduler job in the Sandbox environment.
Composer 1X: At the moment, the enhanced segmentation of Composer 1X (which allows you to segment users based on data from Piano Audience) cannot be tested on Sandbox. It's only possible to test this feature directly in the Production environment.
API: The search_after parameter with the value of the User ID (UID) of a user does not work in the API endpoint publisher/user/list calls made with a Sandbox base URL. On Production, this parameter works and is used to paginate the search results based on the UID, providing a second pagination option to the parameter offset.
Identity Linking: Identity Linking, when used as a user provider integration option in the production environment, creates or updates a user in Piano whenever a valid JWT token is sent with a Composer execution - regardless of the experience action. In the Sandbox environment, however, user creation and the updating of custom fields only occur when the user passes through a Composer experience that includes a Show Offer or Show Template action.