As we recently wrote, Bluetext has been selected as a finalist for the 2018 Acquia Engage Awards in the category of “Lightning in a Bottle”. The Acquia Engage Awards recognize the world-class digital experiences that organizations are building with the Acquia Platform.

More than 100 submissions were received from Acquia customers and partners, from which 43 were selected as finalists. Nominations that demonstrated an advanced level functionality, integration, performance (results and key performance indicators), and overall user experience advanced to the finalist round, where an outside panel of experts will select the winning projects.

A sneak peak of the project:

As a leader in technology services and digital transformation, Mindtree must not only provide a website as a sales tool, but also act as a testament to the brand and its mission. In April 2017, Mindtree approached Bluetext with the goal of reimagining, redesigning, and re-platforming its self-hosted Drupal 7 website, with 10 unique page templates, 1800+ pages, and 700+ blogs in under six months. Mindtree, in partnership with Bluetext and Acquia, was able to achieve a complete digital transformation and launch a scalable digital platform in less than 6 months through the strategic partnership.

The Acquia Platform provided tremendous value for operationalizing the development workflow to gain efficiencies. When paired with Acquia’s Build and Launch Tool and Acquia Lightning, it takes the time savings to a new level. Acquia Lightning provides a starter kit that is geared towards content editing and workflow.

More information about the Awards:

Winners will be announced on October 24, 2018, ahead of this year’s Acquia Engage Conference, which will be held in Austin, Texas, from November 7-9, 2018.

“Acquia partners and customers are tackling the biggest challenges facing marketers, developers, and digital teams,” said Joe Wykes, senior vice president, global channels and commerce at Acquia. “This year’s Acquia Engage Award nominees show what’s possible when open technology and boundless ambition come together to create elegant, world-class customer experiences. They’re making every customer interaction more meaningful with powerful, personalized experiences that span the web, mobile devices, voice assistants, and more. Their work is inspiring, and we’re proud to recognize their accomplishments.”

The Acquia Experience Platform offers a suite of technologies for easily building digital experiences at scale, across the web, mobile sites, native applications, voice assistants and more. The platform allows businesses to manage the deployment and iteration of those experiences in the cloud, and intelligently optimize how they are tailored for specific audiences using machine learning.  

The full list of finalists for the 2018 Acquia Engage Awards are posted to Acquia’s website.

About Mindtree

Mindtree is a leader in technology services and digital transformation. Mindtree delivers digital transformation and technology services from ideation to execution, enabling Global 2000 clients to outperform the competition. “Born digital,” Mindtree takes an agile, collaborative approach to creating customized solutions across the digital value chain. To learn more, visit

About Acquia

Acquia is the open source digital experience company. Acquia provides the world’s most ambitious brands with technology that allows them to embrace innovation and create customer moments that matter. Acquia believes in the power of community – giving their customers the freedom to build tomorrow on their terms. To learn more, visit

Learn How Bluetext Can Help Your Brand with a Great Platform Experience.

Has your CMS become a drag on your organization? One of the most frequently-asked questions we get in conversations with clients is, “Should I upgrade my Content Management System?”.  As trends in marketing evolve, so do the feature sets of tools used by marketers. As your CMS begins to show its age, the costs of keeping it up to date and adding enhanced functionality increases.

For many technical, marketing and IT teams, a clunky CMS, or one that they have simply outgrown, can mean lost opportunities to update and management content and analytics from one of the most valuable corporate assets. To help you determine if your Content Management System is weighing you down, we have put together a list of questions that can help you decide if it is time to upgrade your CMS platform. 

First, Consider Refreshing your Brand

  • When was the last time your refreshed your brand? If you don’t remember the answer, it’s probably time for a refresh.
  • Is your brand identity fresh and modern? Take a look at your website, your logo, your digital assets and email campaign you use to sell your brand and connect with your customers. Also look at what your competitors are doing.
  • When was the last time you did market/user research to identify your target audiences? Do you know if you are you still marketing to the right audiences?
  • Does your messaging and positioning accurately reflect your current value proposition and customer pain points?

Asking yourself these types of questions should help determine if it’s the right time to progress your brand with a fresh perspective to meet customer preference and expectations. A brand refresh is the perfect timing for an update to your Content Management System. It also allows you to take advantage of the ever-growing feature sets that today’s platforms provide. Take the time to review the CMS market and do a comparison to determine what platform best meets your business needs.

Upgrade your Technology Stack

  • Does your current CMS platform allow your team to easily and effectively find, create and update content?
  • Are you managing several web properties across multiple technology platforms? Would it be easier if these were consolidated into a single platform?
  • Does your Content Management System provide you with the tools you need to effectively reach and attract you target market?
  • Is your Content Management System built for IT or is it built for Marketing?

Over the past few years, there has been a dramatic shift in ownership of Content Management Systems in the Enterprise. No longer are CMS’s provisioned and managed by your IT teams. No longer is it enough to provide an easy, structured way for non-technical users to create and manage content. No longer is it enough to provide useful tools such as WYSIWYGs, Form Builders, Workflow Tools and Enhanced Navigation Structures.

Today’s CMS’s are expected to not only support native content management tasks, but they are expected to support multiple digital properties. They are expected to keep up with ever evolving policies like accessibility and privacy. They are expected to enable a conversation with users based on what is known about them.

Improved Security

  • Is your current Content Management System supported by a company and/or a community?
  • Is your CMS currently up to date with the most recent version of the technology?
  • Do you have old legacy custom code preventing you from updating the underlying CMS technologies?

Security is always a concern when dealing with your website. The last thing you want is for the homepage of your website to become a poster-board for the hottest deals on the dark web. Having an old or outdated CMS leaves you vulnerable to well-known security vulnerabilities that are just waiting to be exploited. It might be time to get that ticking time bomb disarmed.

Most platforms provide tools to keep you informed about platform security and notify you both when a vulnerability is found and when a patch is presented. We highly recommend learning how your platform handles this type of communication to ensure you are in the know. Below are some links to useful information for Drupal/WordPress.

Reduce Maintenance Costs

  • Are you paying a hefty monthly retainer to keep the lights on for your CMS?
  • Do simple changes (like text or image updates) require a technical team to implement and/or take days or weeks to get updated?

Wouldn’t you like to use all of the money you are dumping into keeping your technology up and running into your marketing campaigns and content initiatives? If you are spending more money on your technology than you are on your marketing, it is likely past time to upgrade your CMS. A CMS should streamline your content management tasks and empower your team, not suck it dry.

Save Time

  • Do simple changes (like text or image updates) take days or weeks to get updated?
  • Are your page templates flexible and adaptable across desktop and mobile?
  • Are you spending a majority of your development efforts trying to keep your website up and running rather than enhancing it?
  • Does your system allow you to effectively market to your customers?

 If the answer to any of the questions listed above are “yes”, then it is likely you have outgrown your current CMS platform and need to upgrade.

Looking for help in determining if your organization is in need of a CMS upgrade? Contact Us Today!

A Public Service Announcement was released on July 30th, 2018, announcing a moderately critical security update to Drupal Core. This update is not part of the normal Drupal Core security releases but was deemed important enough to release the update. A link to the public service announcement can be found here:

More information on the actual vulnerability was released along with the security updated on August 1, 2018. Based on the feedback and messaging around the issue on other forums such as, it is highly recommended that anyone on Drupal 8.5 install this important update. For organizations not running on the latest version of Drupal 8, it is recommended that you manually upgrade the impacted libraries as soon as possible.

For more information on the Drupal Security Advisories, the Drupal Security Team and Drupal Security Rating Process, check out our previous post here:

Looking for help upgrading your Drupal website? Contact Us!

The term “Content Strategy” may be one of the mosts misunderstood concepts in the marketing industry. One of the reasons is that there are many different definitions for the term, not to mention that most agencies, organizations, and even core teams have differing opinions of what makes up content strategy and execution. Everywhere I have worked has handled content strategy in different ways, but all had one common trend: Content Strategy was integral to a successful website build.

One such definition by marketing guru Rahel Bailie states:

Content strategy deals with the planning aspects of managing content throughout its lifecycle, and includes aligning content to business goals, analysis, and modeling, and influences the development, production, presentation, evaluation, measurement, and sunsetting of content, including governance. What content strategy is not is the implementation side. The actual content development, management, and delivery is the tactical outcomes of the strategy that need to be carried out for the strategy to be effective.

Rahel Bailie, coauthor of Content Strategy: Connecting the dots between business, brand, and benefits and principal of Intentional Design

Rahel does a great job in articulating the essence of Content Strategy. At the end of the day, it is about the process that is put in place to deliver the right content to the right person at the right time. Content Strategy is not a set-it-and-forget-it task; it requires active attention and ongoing support to ensure success.

At Bluetext, content strategy is a key component of every website project. At the beginning of a project, we work with our clients to define the right balance of support required to ensure that they are successful. We strongly believe that without a well-defined and well-executed content strategy there is an abundance of business opportunity left on the table. Whether this be in the form of missed SEO juice, messaging gaps, or outdated and unimportant content, the bottom line is that your organization is missing out on some of its potential.

So what does a sample content strategy process look like?

In this blog post, we walk through a very high level overview of the core pieces required to have a successful content strategy. These are by no means the only things that make up content strategy and there will be different flavors/add-ons/adjustments based on your organization’s specific needs.

Step 1: Define your Audience

The core of a sound content strategy is defining your audience. A content strategy may have more than one target audience, but without at least a basic understanding of your users, you will effectively be shooting in the dark. For growing companies whose business goals are raising more capital, investors will be an important audience in your content strategy. Differentiating between primary and secondary audiences will help prioritize your website’s content curation, presentation, and execution.  Understanding the nuances of your audience — their goals and their behaviors — will allow you to tailor the content on your website such that you give them the best experience possible.

Sample Tasks:

  • Analytics Trend Analysis
  • Stakeholder Interviews
  • Market Research

Step 2: Define your Content Areas

Having a clear definition of what content you need and how it will be structured will help ensure a sturdy foundation for your website. Thinking through how content will be grouped and how a user will find content are key to being successful in this area. Outputs from Step 1 should inform how you construct your content areas. Do you need a page dedicated to target audience testimonials? Are you planning on being a thought leader in your space? Consider where on your site your content areas will be most effective at delivering your core messaging to your target audience.

Sample Tasks:

  • Sitemap Audit
  • ROT (Redundant, Outdated, Trivial) Analysis
  • Competitor Sitemap Analysis

Step 3: Define your Editorial Strategy

Editorial strategy covers many different topics. Defining the voice, point of view, and writing style will help you create a unified website that is easy for your user base to consume. The last thing you want is every page to read like it was written by a different author with no cohesion or consistency.

Sample Tasks:

  • Keyword Analysis & Planning
  • Competitor Research

Step 4: Define your Editorial Process

As I mentioned earlier, Content Strategy is not a “set it and forget it” type of task. It takes constant attention to keep up with not only your competition, but also evolving web trends and expectations of your user base. An editorial process will provide a guideline for you and your team to continually monitor and improve your websites content strategy.

Sample Tasks:

  • Blog Planning
  • Content Refresh Schedule
  • Ongoing SEO Analysis

Ultimately, the content strategy for every business, industry and organization will be a little bit different. The important part of a content strategy is that you have one, you are actively engaged and thinking about it and that you and your team understand it is a living, breathing thing.

Looking for help with your content strategy? Contact Us!

Drupal 8 has made significant improvements in standardizing its upgrade path. Gone are the days where an upgrade would require a full site rebuild and migration. While some upgrades are more significant than others, the overall standardization of the upgrade process is welcome.

Minor Upgrades:

With minor upgrades beginning with Drupal 8, no functionality will be removed from the core. Any changes to core API’s or functions will be “deprecated” and will be slated for removal during the next major upgrade.

Major Upgrades:

Major upgrades will clear out all of the deprecated functionality that has accumulated in order to start off with a clean slate. With the standardization onto the Symphony framework, there is no plan to rebuild the Drupal core like as was done from versions 6 -> 7 and 7 -> 8.

Great! So upgrading my sites in Drupal 8 should be easy!? Right!???

Answer: Not so much!

The big takeaway is that the Drupal 8 updates made to standardize the upgrade process will make staying up-to-date much easier. That being said, there are still complications with the minor version upgrades. Drupal 8 continues to be in very active development — the community is working hard to integrate critical functionality, such as Media and Workflow, into the Drupal core.

With these core improvements comes a new dilemma: How do I upgrade my website that was built utilizing contributed functionality because the core functionality was not ready at the time? It might sound simple to do, but there are many improvements and alterations made to functionality when it is being integrated into the core. This requires an upgrade path to be built in order to move forward with updating the version of Drupal 8 you are running.

The good news is that Drupal 8 will not release a new core upgrade without an upgrade path for migrating the contributed functionality to the core. The bad news is that this won’t cover customizations or other contributed add-on functionality. This is where the real work comes in and where planning is required.

Here are some high-level questions that will help you plan your core upgrade path:

  • What contributed modules that I am using have been moved into the core?
  • Which of the patches that I am using has been committed to the core?
  • Are there additional dependencies that need to be updated due to core API updates or changes?
  • Do I have any custom code that is utilizing deprecated core functions or modules?

Things here can get a little bit more complex based on how your website is built. For example, if you are utilizing features for configuration management you will need to also consider:

  • Are my features dependent on configuration from core/contrib that has been updated or removed?
  • Do my features contain configuration related to a deprecated module?

While the new upgrade plan for Drupal provides a much clearer path forward, it still requires effort to stay up to date. For many clients, separating a large upgrade into several, smaller chunks is desirable because it is more manageable and allows them to spread the cost of upgrading their entire site over several quarters or years.

Looking for help upgrading your Drupal website? Contact Us!

If you are not already aware, and, more importantly, have not already upgraded, on March 28, a critical security update was released for all versions of the open source Drupal content management system platform. The vulnerability was rated as a 21/25 in severity based on the NIST Common Misuse Scoring System. The vulnerability was described as “(a) remote code execution vulnerability (that) exists within multiple subsystems of Drupal 7.x and 8.x. This potentially allows attackers to exploit multiple attack vectors on a Drupal site, which could result in the site being completely compromised.”  More information can be found here at this link:

Drupal Security Advisories

Security advisories are posted on the website under the security advisories page. It is important for anyone who is maintaining a Drupal website to regularly check for security advisories that may apply to their websites in order to keep their sites secure. There are several ways to stay up to date with the most recent information:

Drupal Security Team

One huge selling point of Drupal as a platform is the large community of users. An integral part of this community is the Drupal Security Team, a volunteer team of professionals across the industry who want to help improve the security of Drupal. The goals of the security team are to:

  • Resolve reported security issues in a Security Advisory
  • Provide assistance for contributed module maintainers in resolving security issues
  • Provide documentation on how to write secure code
  • Provide documentation on securing your site
  • Help the infrastructure team to keep the infrastructure secure

For more information about the Drupal Security Team, what they do, and how they do it,  check out their page on

Drupal Security Rating Process

The security rating of a vulnerability is used to help determine the level of urgency you should take when dealing with a new security advisory. While all security updates should be incorporated, some may not warrant disruption to your business to implement immediately upon release.

Based on the  NIST Common Misuse Scoring System (NISTIR 7864) in which all Drupal security advisories are measured, vulnerabilities are given a rating:

  • a score between 0 and 4 is considered Not Critical
  • 5 to 9 is considered Less Critical
  • 10 to 14 is considered Moderately Critical
  • 15 to 19 is considered Critical
  • 20 to 25 is considered Highly Critical

Each issue should be assessed individually, but, as a basic rule of thumb, any issue rated as Critical or Highly Critical should be taken care of immediately. Less Critical to Moderately Critical should be fit into the current release if possible, and Non Critical issues can be prioritized against a backlog of updates.

Looking for help upgrading your Drupal website? Contact Us!

WordPress and Drupal have been the leading open-source content management systems for the past 8+ years. During this time, both platforms have created strong reputations for themselves.

WordPress has been viewed as a user-friendly content management platform, built for bloggers who need to get their information out quickly and easily without having to worry about learning how to code. This made the barrier to entry onto the platform extremely small, resulting in the landscape we have today with more than 25 percent of all websites built in WordPress.

Drupal comes from the other side of the spectrum, designed for developers as a developers platform. With this developer-first mentality, Drupal offers many more features than WordPress to provide flexibility, scale-ability, and maintainability. While the learning curve for Drupal is significantly higher than that of WordPress – reducing the adoption rate by non-technical users –  this did make Drupal stand out in the enterprise by catering to larger applications with a more robust set of requirements. Yet, in the meantime, it acquired a reputation as a developers CMS that’s not as friendly for general users.

Drupal 8 changes the game for Drupal and highlights several core strategic initiatives to help break down the barriers and remove the developer-first stigma that the platform has acquired over the years. In this blog post, we will take a look at some of these core initiatives.

Fast-forward to today, with Drupal 8 in its prime

Drupal 8 opens up a new world for users. This is backed up by the fact that 5 out of 7 active strategic core initiatives for Drupal 8 relate to improving the content management experience. The goals of these initiatives are simple:

  • Reduce the barriers of entry for non-technical users (Out-of-the-Box#, Outside-In#)
  • Provide site builders with the tools they need without having to write code (Out-of-the-Box#, Layout#)
  • Provide content managers the tools they need to be successful (Workflow#, Media#, Outside-In#)

Out-of-the-Box#  Out-of-the-Box# is a strategic core initiative for Drupal 8 which focuses on improving Drupal 8’s OOTB capabilities to provide a fully-featured CMS. Phase 1 of this initiative is to provide a fully baked example site into a core destination website for Food Network Magazine. The example will provide a rich and beautiful experience for users as they navigate through the website.

This example profile will also provide a framework for other developers to do the same thing and begin creating pre-packaged site templates, similar to what WordPress does, as a way of providing a near-plug-and-play experience.

Outside-In#  The Outside-In initiative is one which strives to improve the in-line editing experience in Drupal 8. With today’s landscape of website building platforms, it only makes sense for Drupal to push for this. A key benefit to this type of editing experience is that it keeps content managers in-context of the work they are doing. Content managers are coming to expect these types of slick editing interfaces which are offered by other CMS platforms and website builders such as WordPress, WIX, and Shopify.

Drupal 8 now ships with basic inline-editing experiences across its core features. The foundation is available and the “contrib” space is catching up. Many of the “contrib” add-ons support the in-line editing experience, while Drupal is adding more every day.

Layout#  The Layout initiative is one which is focused more on the site-builders and power-users. The goal for layouts is to provide cookie-cutter like shells where users can drag and drop content and blocks to meet their content needs.

Workflow#  The Workflow initiative is focused on improving the workflow, preview and staging capabilities for content in Drupal. Every organization has slightly different requirements when it comes to publishing content to the web. The Workflow initiative helps to strengthen the core functionality of Drupal to allow for these varied requirements by providing configurable workflows on a per-content-type basis.

Content staging is extremely important to large organizations. Being able to preview a new version of a page before publishing is significant.

Media#  Drupal 8 has long struggled with reusable media assets. The objective of Phase 1 of the media initiative is to provide a simple media solution to make Drupal 8 easy to use for basic use cases. There is a focus on strengthening this feature and integrating it into the core components of Image Fields & WYSIWYG.

While Drupal 8 may not set the highest bar for a great content management experience, it is making significant strides to catch up to its competitors. This combined with the areas at which Drupal already excels, including Performance, Security, and Maintainability, make it an obvious choice for enterprise-level CMS implementations.

Looking to see how you can transform the way you manage your website? See how Bluetext can help!


Website migration – whether to a new version of your content management system or to an entirely new platform – is among the most stressful projects for an enterprise, one that will challenge the team on every assumption and analytics they have. Before starting down this path to a website migration, there are two key questions you will want to answer:

  1. Does automating the process save me time?
  2. Does automating the process save me money?

Below is our guide to go about answering these questions. Of course, every scenario is different and requires evaluation and analysis before the final decisions are made.

Determining an Approach

When determining the approach for migrating content, there are several factors that come into play when architecting out a solution to find out which one would be best.

How many pages are there? If your website is relatively simple, and there are a small number of pages (<500), it is likely going to be easier/faster/cheaper to copy/paste your content from one website to another. The number of pages will need to be determined by you, but we have found that migrating sites with more than 500 pages start to become more efficient with migrations scripts.

Importance of Site Crawls. Crawling the existing website is a critical step in determining the approach to take for a website migration. This will give you a quick summary of the volume of pages, images, and documents. Tools like Screaming Frog will allow you to export the list to a spreadsheet where you can create a more thorough inventory and conduct a ROT analysis (Redundant, Outdated, Trivial) on your content to determine how much of this content actually needs to be moved to the new platform.

Where do the current pages live? Is the content that you are migrating in a database somewhere or does it live in static HTML files on a server? Where the content lives is important because it limits the options available for importing and working with the content. It also determines the structure of the content.

Database Content. Content that is stored in a database is typically more structured and logically separated. This gives more flexibility when writing migration scripts because it is already in a consumable format. It is unlikely that this will be an “easy” 1:1 mapping from point A to point B, but the first step of getting the content into a consumable format is done.

Static HTML. Content that is in a static HTML format is going to be harder to work with. In these cases, you will likely need to use a web scraper tool to break apart your pages and get them into a consumable format for your migration to Drupal. You will be faced with numerous edge cases based on how each page is built. This process may require a lot of trial & error in order to get right.

How well are the static pages structured/formatted? In any website migration, consistency is key to making the process effective. You will want to determine if the pages follow consistent patterns so that you can create a repeatable process. If the pages have no uniform formatting or consistent markup, the task of creating a repeatable process of a migration script will be difficult and more time-consuming.

Does the content have references to media (images & files)? If your content contains references to media, this adds another step in the process. Your migration scripts will need to not only handle the migration of the assets but also alter the markup to replace the links/references to these assets.

What tools are available on the platform I am building the new website on? Most modern CMS platforms provide some level of migration support for getting content from point A to point B. A majority of the work that we do is in WordPress and Drupal, below is a quick list of migration options for each platform.

WordPress Migration Options

  1. WordPress All Import Tool
  2. WordPress Import Tool (Blogger, BlogRoll, LiveJournal, RSS, Tumblr, WordPress)
  3. FG Drupal to WordPress
  4. HTML Import 2

Drupal Migration Options

  1. Drupal 8 Migrate
  2. Drupal 7 Migrate
  3. Feeds Module
  4. Content Import

Other Useful (Platform Agnostic) Tools to help with content cleanup:

  1. htmLawed
  2. PHP DOM Manipulation
  3. Site Sucker
  4. Example Python Web Scraping

Determining the right solution

Now that you have all of the information you need, you can answer the two questions:

  1. Does automating the process save me time?
  2. Does automating the process save me money?

You are now equipped to make an informed decision on the approach you should be taking. You have a good grasp on what your source content looks like, how easy it is going to be to work with and what tools you have to give you a kickstart. Your next step is to crunch some numbers and get some high-level estimates on LoE for writing these migrations.

Trying to understand if website migration is the right approach for your organization? Bluetext can help.

In previous posts, we have provided tips and tricks for a successful Drupal migration from earlier versions of the content management system to the latest Version 8. In this installment of our series, we will talk about the Drupal 8 Migrate Plugin System.

About Drupal 8 Migrate

The migrate module has been moved into the core in Drupal 8, showing the community dedicated to making the process of upgrading between versions or migrating into Drupal an easier path to a successful move. The migrate module takes advantage of the Drupal 8 Plugin system, offering developers several Plugin types that they can implement: MigrateProcessPlugin, MigrateSourcePlugin, MigrateDestinationPlugin.

In an earlier blog post in this series, we dove into an introduction of the Migrate module in Drupal 8 and reviewed a basic setup of the migration mappings needed to get started. In this post, we will dive into MigrateProcessPlugins: what they are, how they work and examples on how to create your own.

What is a Drupal 8 Migrate Processor?

A migration processor is a plugin that is used to manipulate data that is being mapped from a source to a destination. These plugins are typically small, but very powerful. Processors are used in the “process” portion of your migration configuration file.

Drupal 8 comes with several migration processors out-of-the-box. Some of the more notable ones that you will likely use on a regular basis are:

  1. get – Default, 1:1 data migration plugin
  2. default_value – Allows you to define a default value for a field
  3. explode – Converts a string into an array of strings based on a delimiter
  4. iterator – Iterates over an array of values to perform a process on
  5. migration_lookup – Looks up an entity based on an ID from a source to a destination
  6. skip_on_empty – Skips the current field or row if the value is empty in the migration

What Are the Benefits of Using a Drupal 8 Migrate Processor?

Migration process plugins provide developers with more flexibility and reusability when working with migrations in Drupal 8. By utilizing the Drupal 8 Plugin system, the Migrate module allows users to create new processors that implement a generic interface and can essentially be plug and play. In addition, the OO design of the plugin system allows developers to utilize inheritance of abstract classes and enforcement of methods if they have several variations of a plugin, without reinventing the wheel or duplicating code every time.

In English, this means that I can develop my own processors that manipulate data from my data source in any way that I want, and then reuse it across any migration that needs to use it.

How Does a MigrateProcessPlugin Work?

If you are finding that the out-of-the-box MigrateProcessPlugin’s are not enough for your use case, you may want to consider creating a new custom MigrateProcessPlugin. Creating a new process plugin in Drupal 8 is a fairly simple task.  

Let’s take a look at a simple MigrateProcessPlugin as an example to get us started.

In the DefaultValue MigrateProcessPlugin, we only have one method that is implemented, called “transform”. Transform takes in a value that is passed in by the user, checks to see if it is set, and sets that value for the field in the destination mapping.

How Do I Use a Process Plugin in My Migration?

Using a process plugin in your migration is relatively simple. If you have written a migration before, you have used these without even knowing it. Let’s take a look at the example below:

In this example, you will notice several plugins are utilized:

  1. get: The “get” plugin is the default plugin. Any mapping that does not have a child element defining a plugin will utilize the “get” plugin
  2. default_value: In this example, we are setting the user ID of a blog_post to user 1

When am I Going to Need a Custom Processor Plugin?

Before you venture down the path of creating custom processors, ask yourself the following questions:

  1. Can any of the existing process plugins, or a combination of any of the existing process plugins, manipulate the data to the format I need?
  2. Is the data transformation something that follows a pattern?
  3. Is this processing/data manipulation something that will need to be used for more than one migration?
  4. Is this a transformation that other users/migrations may benefit from?

If the answer to any of the questions above is “YES”, it is worth your time to create a custom processor plugin.

Stay tuned for our next blog post in our migration series on custom processors. In this post, we will dive into what it takes to create a custom processor for a WordPress to Drupal migration.

Would you like help to create a more detailed plan for migrating your website to Drupal 8?

Contact Us – We would be happy to help!

About Drupal 8 Migrate

The migrate module has been moved into the core in Drupal 8, showing the community dedicated to making the process of upgrading between versions or migrating into Drupal easier. The migrate module takes advantage of the Drupal 8 Plugin system, offering developers with several plugin types that they can implement: MigrateProcessPlugin, MigrateSourcePlugin, and MigrateDestinationPlugin.

Quick Recap of our previous blog:

  1. Complete rewrite & moved into Drupal 8 core
  2. Out of the box support for D6 -> D8 and D7 -> D8
    1. Nodes, Users, Comments, Profiles, Taxonomies
    2. Content & Configuration
  3. Support for custom sources and destinations
  4. Processors for working with/manipulating data

Series Mapping:

Part 1: Migration Setup & Mappings

Part 2: Working with Processors

Part 3: Coming soon!

Drupal 8 Migrate Module Overview

The Drupal 8 migrate module that is shipped with core provides a set of API’s for setting up migrations. The module also provides extensible object-oriented base classes and interfaces for migration plugins including:

  1. Source & Destination Plugins
  2. Process Plugins
  3. Config Migration Mappings

While the migrate module has been moved into core, the contributed space still provides significant value and I wouldn’t recommend trying to build a migration without it:

  1. Migrate Plus: The Migrate Plus project provides extensions to core migration framework functionality as well as examples.
  2. Migrate Tools: The Migrate Tools module provides tools for running and managing Drupal 8 migrations.

Creating Migration Mappings

In Drupal 8 all of your migration mappings are done through configuration files. In Drupal 7 these migration mappings would have been done in classes through the $this->addMapping() function.

Configuration files provide the blueprint for the migrations, and there are two main types of configuration files that we will need to define:

  1. migrate_plus.migrate_group.<name>.yml
  2. migrate_plus.migrate.<name>.yml

Migration Group

The migration group is a configuration file and is similar to the idea of hook_migrate_api in Drupal 7. This configuration file defines a group of migration classes and configures global configuration/settings to be shared across the classes.  

  1. id – Unique identifier
  2. shared_configuration – Defines shared configuration between all migration classes that are part of this group. **Example: setting the source database to use
  3. dependencies – Sets the dependencies for this set of migration classes to function

Let’s see an example:

Migration Configuration File

The migration configuration file is similar to a migration class in Drupal 7. At a high level, the migration config file defines the metadata and field mappings for a particular migration in Drupal 8. There are 5 key concepts that you need to be aware of in the migration configuration file:

  1. Definition – The definition of this migration class, its dependencies, and what migration_group it belongs to
  2. Source – What migration source should be used for this migration when it is run (i.e. where am I migrating my content from?)
  3. Destination – The destination for the migration (i.e. where am I migrating my content to?)
  4. Field Mappings – The mappings from Source -> Destination
    1. Processors – The processing of the source data so that it can be consumed by the destination

Let’s see an example:

Stay tuned for our next blog post in our migration series on custom processors. In this post, we will dive into what it takes to create a custom processor for a WordPress to Drupal migration.

Would you like help to create a more detailed plan for migrating your website to Drupal 8?

Contact Us – We would be happy to help!