Import/Migrate existing data
Intro
If you would like to migrate existing data into to AudiencePlayer, we offer a data migration package ("Assisted Migration"), through which our team helps you perform a custom migration based on an Excel sheet. For more information about the possibilities and pricing please contact
support.
☞ Attached (at the bottom of this article) you can find an example Excel sheet you can use as a template.
The steps you need to take before we can process your custom import:
- Provide us with a completely filled out Excel sheet (see below):
- If you want to import existing images, send those to us with a separate zip file (e.g. we transfer).
- Upload all your videos via the CMS (click here for more information on video uploading).
Please note that:
- ☞ A : The speed of the process greatly depends on the quality and complexity of the filled in Excel sheet and/or separated files: Especially if the Excel sheet is prepared manually, it naturally is prone to "human error": For example missing columns, incorrect id's or typo's usually all lead to at least a few iterations (or tests with smaller batches) before all data is migrated to your satisfaction.
- ☞ B : Migration takes time to prepare, please contact our team well in advance to schedule your migration (at least two weeks notice).
- ☞ C : If you are migrating user accounts, passwords should never be migrated since these are always expected to have been encrypted. Shortly after launch, we advise you to send out an e-mail to all your users asking them to create a new password once, on your new website. AudiencePlayer explicitly does NOT automatically send such e-mails, because in our experience each customer has their own requirements and/or timing regarding informing users. In your mailing, you can leverage this simple link below, to allow users to create a new password by starting the "pasword reset" flow (first replace the domain name with your own and always test the link/flow!):
https://web8.audienceplayer.com/home(modal:password-reset)?modal=true
You could even customise the link to include the user's e-mail address (e.g. in a newsletter template of your CRM provider). The e-mail address will thus automatically be pre-filled in the password reset flow, reducing the chance of a user mistyping it, or worse, using a completely different/alternate e-mail address for which no migrated account yet exists:
https://web8.audienceplayer.com/home(modal:password-reset)?modal=true&email=user@example.com
Detailed requirements
Excel sheet lay requirements:
- Must not contain any formulas, filters, frozen columns, other complex Excel functionality.
- Must not contain any styling (colours, cell borders, etc.)
- Must only contain sheets listed below (everything else is ignored).
- Try to never use special characters (such as spaces, quotes etc.) in your file names. For example the image file "My colleague's party .PNG" can better be named: "my_colleagues_party.png" because it is more sensitive to (human) typing errors.
Excel sheet tab sheets:
articles
This sheet is the most important one that typically needs to be filled out, it contains all the metadata regarding your video titles, films etc. If you would like TVOD-products to be automatically created based on your articles, you can also list those in this sheet.
> required fields:
- name : [name for internal reference of article in CMS]
- external_article_id : [your unique article reference, e.g. file-name of label "SKU123"]
- external_article_root_id : [your unique article reference of the parent article, e.g. series]
- type : [film, series, season, episode]
article_asset
This sheet contains the relations between the articles and the existing assets, i.e. for custom imports we always expect the video assets and subtitles to have been uploaded (via CMS or upload tool, click
here for more information on video uploading).
> required fields:
- external_article_id : [your unique article reference, e.g. file-name of label "SKU123"]
- source_file_name : [source file name of your video, e.g. "jurassic-park-1080p.mp4"]
- linked_type : [episode, film, trailer, preview]
- accessibility : [everyone, non_authenticated_only, authenticated_only, non_authorized_only, authorized_only]
article_file
This sheet contains the relation between the articles and the images, posters etc. you'd like to attach. For custom imports, we expect the images to be delivered to us separately (e.g. via WeTransfer). Please put the images in a separate folder with the same name as the sheet, i.e. "article_file". The column source_file_name is the filename of the image within this folder.
For more information about images aspect ratios/sizes for your Articles, please see the documentation on:
Articles> required fields:
- external_article_id : [your unique article reference, e.g. file-name of label "SKU123"]
- source_file_name : [unique file name of the image]
- type : [image, poster, icon]
categories
This sheet contains the categories you would like to import. You can control both nesting and category order.
> required fields:
- name : [your unique article reference, e.g. file-name of label "SKU123"]
users
This sheet contains an overview of all the user account you would like to import.
> required fields:
- email : [unique e-mail address of the user]
- full_name : [full name of the user]
user_product
This sheet contains the relation between the users and the (purchased) article products. This sheet allows you to create users with pre-authorised purchased articles products (typical use case: Already purchases video articles can be kept when migrating from an existing platform into AudiencePlayer).
If the products already exist in the AudiencePlayer CMS, simply fill the column "product_id" and "email" and the products will be processed.
If the products do not yet exist, they can automatically be created based on the given articles that are being reported (advanced use case).
> required fields:
- product_id : [the AudiencePlayer Product id]
OR (auto-generation) - external_article_id : [your unique article reference, e.g. file-name of label "SKU123"]
- email : [unique -email address of the user]
user_subscription
This sheet contains the relation between the users and the newly created (AudiencePlayer) subscriptions. This sheet allows you to create valid user-subscriptions for your users. (typical use case: Pre-existing user subscriptions should remain valid after migration). Among the required fields is "payment_provider_type", please always fill this with the payment provider assigned to your project (typically "mollie" or "stripe"), regardless of whether there is a mandate for it.
> required fields:
- email : [unique -email address of the user]
- subscription_id : [the AudiencePlayer Subscription id]
- status : [active, suspended, expired]
- payment_provider_type : [mollie, stripe]
- acquired_at : [date of acquisition: ISO-8601 formatted Date-Time string: "2000-12-31T12:34:56Z"]
- expires_at : [date of expiry: ISO-8601 formatted Date-Time string: "2000-12-31T12:34:56Z"]
☞ The "expires_at" date indicates the moment at which the user-subscription expires and is up for renewal: A) if a payment mandate exists, the user-subscriptions will be renewed at this date. B) If a payment mandate does NOT exist, the user-subscription will expire at this date (depending on your configuration, the proper mail template will be sent to the user beforehand, to urge the user to add a valid payment method).
N.B. Existing payment (i.e. "incasso") contracts typically cannot be transferred, except under special conditions:
- Mollie: the incasso contracts are already part of the Mollie account that will be (re)used (in that case for each user collect the relevant Mollie properties "customerId" and "mandateId" and add those in the proper columns "remote_payment_user_id" and "remote_payment_mandate_id").
- Stripe: the incasso contracts are already part of the Stripe account that will be (re)used (in that case for each user collect the relevant Stripe properties "customer.id" and "paymentMethod.id" and add those in the proper columns "remote_payment_user_id" and "remote_payment_mandate_id").
Final checks
Before sending in your migration sheet, please perform these checks!
- Are all formulas, filters, frozen rows etc removed?
- Are all date fields properly formatted conform ISO8601 (e.g. "2000-12-31T00:00:00Z")?
- No empty or incomplete rows?
- Are the Excel sheet tabs properly named?