ComputerMinds.co.uk: Automatically generate forms from config schema

Image removed.

Drupal's form API has been brilliant for many years. Still, recently I found myself wondering why I needed to build a configuration form if I already had a schema for my config. Defining a schema facilitates API-first validation (including some pretty smart constraints), specific typing (e.g. actual booleans or integers instead of '0' or '1' strings), and even translation in Drupal. 

That last part got me thinking; if Drupal automatically provides translation forms for typed configuration, why must I build a form? I started diving into the code and found config_translation_config_schema_info_alter() which maps certain config data types to element classes. The ConfigTranslationFormBase::buildForm() class fetches the schema for each config property from the 'config.typed' service (\Drupal\Core\Config\TypedConfigManager) before building the appropriate elements. So Drupal core automatically provides this translation form - notice the long textarea for the 'body' property:

Image removed. Screenshot of a config translation form from Drupal core

I had built a block plugin that needed some regex-based validation on a couple of its configuration properties. Validation constraints seemed like a natural fit for these, as an inherent part of the property definitions, rather than just on the form level. Drupal has had good support for validation constraints on configuration since version 10.2. This allows forms to be simpler, and config to be fully validatable, even outside the context of a form (e.g. for setting via APIs or config synchronisation). So I defined my config schema like this:

block.settings.mymodule_myblock: type: block_settings label: 'MyBlock block settings' mapping: svcid: type: string label: 'Service ID' constraints: Regex: pattern: '/^[a-zA-Z0-9_\-]+$/' message: "The %value can only contain simple letters, numbers, underscores or hyphens." default: 'abcde' locked: true envid: type: string label: 'Environment ID' constraints: Regex: pattern: '/^[a-zA-Z0-9_\-]+$/' message: "The %value can only contain simple letters, numbers, underscores or hyphens." default: 'x-j9WsahRe_1An51DhErab-C'

Then I set myself the challenge of building a configuration form 'automatically' from this schema - without using core's config_translation module at all, as this was for a monolingual site. 

I only had two string properties, which meant two textfields, but I wrote the code to use form elements that could be appropriate for other types of property that might get added in the future. The #title of each element could come directly from each label in the schema. (Why do we usually set these in both the schema and form element?!) I added custom default and locked properties to the schema to help encapsulate everything I considered 'inherent' to each part of the config in one place. This meant the configuration form for my block could be fairly simple:

public function blockForm($form, FormStateInterface $form_state) { // Each config property will be returned with its schema from $this->getConfigurables(). foreach ($this->getConfigurables() as $key => $schema_info) { $form[$key] = [ '#type' => match ($schema_info['type']) { 'string', 'label' => 'textfield', 'text' => 'textarea', 'boolean' => 'checkbox', 'integer', 'float' => 'number', 'email' => 'email', }, '#title' => $schema_info['label'], '#default_value' => $this->configuration[$key], '#required' => empty($schema_info['nullable']), '#disabled' => $schema_info['locked'] ?? FALSE, ]; } return $form; }

Hopefully that gives an idea of how simple a config form could be - and this could really be reduced further by refactoring it into a generic trait. The code in core's config_translation module for mapping the type of each property to an element type could be much more useful than the fairly naïve match statement above, if it was refactored out to be available even to monolingual sites.

You can explore my full code at https://gist.github.com/anotherjames/bcb7ba55ec56359240b26d322fe2f5a5. That includes the getConfigurables() method which pulls the schema from the TypedConfigManager.

You'll see that I went a little further and picked up the regex constraints for each config property, for use in #pattern form API properties. This provides quick feedback to admins about what characters are allowed using the HTML5 pattern attribute:

Image removed.

Not all configuration constraints could be built into the form level. It's arguable that since the Regex constraint and HTML pattern attribute support slightly different regular expression features, this particular one shouldn't be included in a generic trait. Then again, the Choice constraint could be especially useful to include, as it could be used to populate #options for select, radios, or checkboxes elements. We've started using backed Enums with labels for fixed sets of options. Can we wire those up to choice constraints together, I wonder?

Whereas my example was for a configurable plugin's form (which I don't believe can use #config_target), Joachim Noreiko (joachim) has submitted a feature request to Drupal core for forms extending ConfigFormBase to get automatically built from schema. This idea of generating form elements from config schema is still in its infancy, so its limits and benefits need to be explored further. Please let us know in a comment here, or in Joachim's feature request, if you have done anything similar, or have ideas or concerns to point out!

Dries Buytaert: Solving the Maker-Taker problem

Image removed.

Recently, a public dispute has emerged between WordPress co-founder Matt Mullenweg and hosting company WP Engine. Matt has accused WP Engine of misleading users through its branding and profiting from WordPress without adequately contributing back to the project.

As the Founder and Project Lead of Drupal, another major open source Content Management System (CMS), I hesitated to weigh in on this debate, as this could be perceived as opportunistic. In the end, I decided to share my perspective because this conflict affects the broader open source community.

I've known Matt Mullenweg since the early days, and we've grown both our open source projects and companies alongside each other. With our shared interests and backgrounds, I consider Matt a good friend and can relate uniquely to him. Equally valuable to me are my relationships with WP Engine's leadership, including CEO Heather Brunner and Founder Jason Cohen, both of whom I've met several times. I have deep admiration for what they've achieved with WP Engine.

Although this post was prompted by the controversy between Automattic and WP Engine, it is not about them. I don't have insight into their respective contributions to WordPress, and I'm not here to judge. I've made an effort to keep this post as neutral as possible.

Instead, this post is about two key challenges that many open source projects face:

  1. The imbalance between major contributors and those who contribute minimally, and how this harms open source communities.
  2. The lack of an environment that supports the fair coexistence of open source businesses.

These issues could discourage entrepreneurs from starting open source businesses, which could harm the future of open source. My goal is to spark a constructive dialogue on creating a more equitable and sustainable open source ecosystem. By solving these challenges, we can build a stronger future for open source.

This post explores the "Maker-Taker problem" in open source, using Drupal's contribution credit system as a model for fairly incentivizing and recognizing contributors. It suggests how WordPress and other open source projects could benefit from adopting a similar system. While this is unsolicited advice, I believe this approach could help the WordPress community heal, rebuild trust, and advance open source productively for everyone.

The Maker-Taker problem

At the heart of this issue is the Maker-Taker problem, where creators of open source software ("Makers") see their work being used by others, often service providers, who profit from it without contributing back in a meaningful or fair way ("Takers").

Five years ago, I wrote a blog post called Balancing Makers and Takers to scale and sustain Open Source, where I defined these concepts:

The difference between Makers and Takers is not always 100% clear, but as a rule of thumb, Makers directly invest in growing both their business and the open source project. Takers are solely focused on growing their business and let others take care of the open source project they rely on.

In that post, I also explain how Takers can harm open source projects. By not contributing back meaningfully, Takers gain an unfair advantage over Makers who support the open source project. This can discourage Makers from keeping their level of contribution up, as they need to divert resources to stay competitive, which can ultimately hurt the health and growth of the project:

Takers harm open source projects. An aggressive Taker can induce Makers to behave in a more selfish manner and reduce or stop their contributions to open source altogether. Takers can turn Makers into Takers.

Solving the Maker-Taker challenge is one of the biggest remaining hurdles in open source. Successfully addressing this could lead to the creation of tens of thousands of new open source businesses while also improving the sustainability, growth, and competitiveness of open source – making a positive impact on the world.

Drupal's approach: the Contribution Credit System

In Drupal, we've adopted a positive approach to encourage organizations to become Makers rather than relying on punitive measures. Our approach stems from a key insight, also explained in my Makers and Takers blog post: customers are a "common good" for an open source project, not a "public good".

Since a customer can choose only one service provider, that choice directly impacts the health of the open source project. When a customer selects a Maker, part of their revenue is reinvested into the project. However, if they choose a Taker, the project sees little to no benefit. This means that open source projects grow faster when commercial work flows to Makers and away from Takers.

For this reason, it's crucial for an open source community to:

  1. Clearly identify the Makers and Takers within their ecosystem
  2. Actively support and promote their Makers
  3. Educate end users about the importance of choosing Makers

To address these needs and solve the Maker-Taker problem in Drupal, I proposed a contribution credit system 10 years ago. The concept was straightforward: incentivize organizations to contribute to Drupal by giving them tangible recognition for their efforts.

We've since implemented this system in partnership with the Drupal Association, our non-profit organization. The Drupal Association transparently tracks contributions from both individuals and organizations. Each contribution earns credits, and the more you contribute, the more visibility you gain on Drupal.org (visited by millions monthly) and at events like DrupalCon (attended by thousands). You can earn credits by contributing code, submitting case studies, organizing events, writing documentation, financially supporting the Drupal Association, and more.

Image removed.A screenshot of an issue comment on Drupal.org. You can see that jamadar worked on this patch as a volunteer, but also as part of his day job working for TATA Consultancy Services on behalf of their customer, Pfizer.

Drupal's credit system is unique and groundbreaking within the Open Source community. The Drupal contribution credit system serves two key purposes: it helps us identify who our Makers and Takers are, and it allows us to guide end users towards doing business with our Makers.

Here is how we accomplish this:

  • Certain benefits, like event sponsorships or advertising on Drupal.org, are reserved for organizations with a minimum number of credits.
  • The Drupal marketplace only lists Makers, ranking them by their contributions. Organizations that stop contributing gradually drop in ranking and are eventually removed.
  • We encourage end users to require open source contributions from their vendors. Drupal users like Pfizer and the State of Georgia only allow Makers to apply in their vendor selection process.
Image removed.A slide from my recent DrupalCon Barcelona State of Drupal keynote showcasing key contributors to Drupal Starshot. This slide showcases how we recognize and celebrate Makers in our community, encouraging active participation in the project.

Governance and fairness

To make sure the contribution credit system is fair, it benefits from the oversight from an independent, neutral party.

In the Drupal ecosystem, the Drupal Association fulfills this crucial role. The Drupal Association operates independently, free from control by any single company within the Drupal ecosystem. Some of the Drupal Association's responsibilities include:

  1. Organizing DrupalCons
  2. Managing Drupal.org
  3. Overseeing the contribution tracking and credit system

It's important to note that while I serve on the Drupal Association's Board, I am just one of 12 members and have not held the Chair position for several years. My company, Acquia, receives no preferential treatment in the credit system; the visibility of any organization, including Acquia, is solely determined by its contributions over the preceding twelve months. This structure ensures fairness and encourages active participation from all members of the Drupal community.

Drupal's credit system certainly isn't perfect. It is hard to accurately track and fairly value diverse contributions like code, documentation, mentorship, marketing, event organization, etc. Some organizations have tried to game the system, while others question whether the cost-benefit is worthwhile.

As a result, Drupal's credit system has evolved significantly since I first proposed it ten years ago. The Drupal Association continually works to improve the system, aiming for a credit structure that genuinely drives positive behavior.

[newsletter-blog]

Recommendations for WordPress

WordPress has already taken steps to address the Maker-Taker challenge through initiatives like the Five for the Future program, which encourages organizations to contribute 5% of their resources to WordPress development.

Building on this foundation, I believe WordPress could benefit from adopting a contribution credit system similar to Drupal's. This system would likely require the following steps to be taken:

  1. Expanding the current governance model to be more distributed.
  2. Providing clear definitions of Makers and Takers within the ecosystem.
  3. Implementing a fair and objective system for tracking and valuing various types of contributions.
  4. Implementing a structured system of rewards for Makers who meet specific contribution thresholds, such as priority placement in the WordPress marketplace, increased visibility on WordPress.org, opportunities to exhibit at WordPress events, or access to key services.

This approach addresses both key challenges highlighted in the introduction: it balances contributions by incentivizing major involvement, and it creates an environment where open source businesses of all sizes can compete fairly based on their contributions to the community.

Conclusion

Addressing the Maker-Taker challenge is essential for the long-term sustainability of open source projects. Drupal's approach may provide a constructive solution not just for WordPress, but for other communities facing similar issues.

By transparently rewarding contributions and fostering collaboration, we can build healthier open source ecosystems. A credit system can help make open source more sustainable and fair, driving growth, competitiveness, and potentially creating thousands of new open source businesses.

As Drupal continues to improve its credit system, we understand that no solution is perfect. We're eager to learn from the successes and challenges of other open source projects and are open to ideas and collaboration.

The Drop Times: Unlock Advanced Drupal Content Editing: Join Our CKEditor Webinar

Maximize your Drupal content creation with CKEditor's advanced features! Join the upcoming webinar on October 16, 2024, at 11:00 AM EDT to learn about the CKEditor 5 Drupal Plugin Pack, advanced editing tools, and productivity enhancements. Drupal developers, content managers, and site administrators will gain practical insights on improving content workflows. Don't miss this opportunity—register today!

1xINTERNET blog: DrupalCon Barcelona - A seminal moment in Drupal’s history

DrupalCon is the biannual conference where leaders in Drupal gather to coordinate, collaborate and present the latest developments in digital and web technologies. This week 1xINTERNET attended DrupalCon Barcelona in full force. But this conference was like none before it, this was Starshots World Premier and it exceeded all expectations.

Evolving Web: Dries Presents Drupal CMS at DrupalCon Barcelona - Leading the Way in AI-Assisted Site Building

Image removed.

At DrupalCon Barcelona 2024, Dries Buytaert, the creator and project lead of Drupal, delivered his 40th DriesNote, in which he shared an exciting vision of where the platform is heading, with a strong focus on Drupal CMS (the product being developed as part of the Starshot Initiative). As part of the Starshot Initiative’s Leadership Team, I’m the Marketing Lead, working to align the positioning of the product with the needs of our target audiences: primarily marketers, content teams, and site builders, but also evaluators, designers, and developers. 

 

Image removed. The Drupal Starshot Leadership team, featuring Dries Buytaert as the Product Lead, Tim Plunkett as the Technical Lead, Pamela Barone as the Product Owner, Cristina Chumillas as the UX Lead, Lenny Moskalyk as the Delivery Manager, Gabor Hojsy as the Contrib Coordinator and Suzanne Dergacheva (that's me!) as the Marketing Lead. 

 

I’m also excited to contribute along with my colleagues at Evolving Web— who are leading the Analytics track. We’re proud to contribute to Drupal CMS (formerly known as Starshot). With a focus on Drupal CMS, Experience Builder, AI innovations, and a commitment to responsible AI, Dries outlined how the platform is becoming more accessible to non-developers while pushing the innovation and flexibility that Drupal is known for. 

If you missed the DriesNote, I will share some key takeaways below. Check out the recording for the preview demo of Drupal CMS and all the exciting features ahead directly from Dries.

Drupal CMS

Drupal CMS is being designed to make the power of Drupal more accessible than ever, offering preconfigured solutions that allows marketers, web designers, and organizations to easily build and manage their own websites.

It’s important to note that Drupal CMS isn’t some reduced-functionality, beginner-friendly version—it’s built on the robust foundation of Drupal Core. This means that while it is designed to make getting started with Drupal easier for new users, it still offers all the power, flexibility, and scalability that experienced developers rely on. Drupal CMS will open  the door to greater adoption directly by marketers and non-developers, making it simpler to use without sacrificing any of the advanced capabilities that make Drupal such a powerful tool for complex websites.

Preview of Drupal CMS

In the DriesNote demo, Dries demonstrated just how easy it will be to get up and running with Drupal CMS, by showing how a fictional marketer named ‘Sarah’ could easily create a wine tour website with a calendar to highlight upcoming tasting tours.

What Are Recipes?

A standout feature of Drupal CMS is the introduction of Recipes, which are pre-configured functionality, like SEO optimization or event management, that can be easily added to your website. They package content types and other configuration into easily reusable bundles. 

The benefit is that you can add features quickly, use smart defaults that have been carefully selected by experts, and take advantage of best practices even if you’re not a technical user. 

Dries demonstrated how Sarah used an Events Recipe to set up an interactive calendar and SEO-friendly pages for her wine tour website. With just a few clicks, Sarah was able to accomplish in hours what would previously take days.

 

Image removed. The Recipes dashboard shows the status of the Recipes currently underway

AI-Driven Site Building and Migration

One of the most exciting moments of the DriesNote was the unveiling of AI Agents, which automate many complex tasks in Drupal. These AI agents, embedded within Drupal CMS, allow non-technical users to rename content types, create custom fields, and enforce image quality standards—all through simple, plain-language commands.
Dries showed how Sarah leveraged AI to make critical site changes quickly. From migrating content from a non-Drupal website to setting up structured content types, AI simplifies traditionally cumbersome processes. 

Additionally, Drupal’s AI is transparent and flexible. Users can see what language models are used and even swap out the default AI providers with their own models, offering an extra layer of customization and control.

A Commitment to Responsible AI

As part of Drupal’s commitment to the open web, Dries announcedDrupal’s new Responsible AI Policy, which is built around the following principles: 

  • Human in the Loop: AI decisions must be reviewable and reversible by a human.
  • Transparency: Users must know where and how AI is being used on their sites.
  • AI Model Flexibility: Drupal users can select different AI providers based on their needs, ensuring that privacy, ethics, and energy efficiency are prioritized.

This policy has been developed to not only drive the incorporation of AI features into Drupal CMS but to also encourage its adoption by other parts of the Drupal ecosystem including Drupal core and Drupal contrib.

Experience Builder

Another major highlight from the keynote was a preview of Experience Builder, a React-based interface for modifying the UX and UI of a website. It provides content editors and marketers with a no-code builder that gives end-users the ability to add components, select styling options, and apply branding to the website without writing custom code. What really makes it user-friendly is how fast the interface is. Thanks to the fact that it’s React-based, clicks feel instant. This encourages users to experiment and makes the overall experience much more positive. It’s built using Single Directory Components (SDCs), making it familiar to front-end developers. 

Experience Builder will be part of Drupal CMS but is also set to revolutionize the way that all Drupal websites are built. The plan is for it to eventually replace the current Drupal admin UI, providing a more intuitive way to edit all aspects of a Drupal website. During the keynote, Dries presented a demo of Experience Builder, showcasing its initial version, with drag-and-drop interface, as well as an overview of what it will look like in the future.

With 30 full-time developers working on it—making it the largest, fastest-moving initiative ever undertaken in Drupal—Experience Builder will significantly modernize how websites are built and managed in Drupal,  eventually replacing the current Drupal admin interface. 

 

Image removed. A preview of what Experience builder will look like

A Roadmap for Drupal CMS 

A pre-release version of Drupal CMS is available to install so you can try it out and a hosted version is also available so you can try out the AI capabilities for yourself right from your browser. The first release of Drupal CMS will happen on January 15th, 2025—Drupal’s 24th birthday. A release candidate will be launched at DrupalCon Singapore, happening on December 9-11, 2024.  Experience Builder will be included in version 2 of Drupal CMS sometime in 2025.

The “Adopt a Document” Program

In addition to these technical advancements, Dries introduced the Adopt-a-Document program, a new initiative aimed at improving Drupal’s documentation, not only for Drupal CMS but also for Drupal Core. Organizations can sponsor sections of documentation to help ensure that Drupal remains well-supported and accessible for all users through a partnership with Drupalize.me. In addition, the Drupal Association is hiring a full-time documentation lead. 

Get Involved 

The message of Dries’ keynote was clear: Drupal CMS is not just about making web development easier; it’s about making the open web accessible to everyone. With AI-driven tools, intuitive page building, and a commitment to responsible technology, Drupal CMS is set to bring the power of Drupal to a whole new generation of users.

Whether you're a developer, a site builder, or a marketer, this is a great time to get involved and help shape the future of Drupal. Want to join us in pushing these initiatives forward? Get in touch or learn more at drupal.org/about/starshot
 

+ more awesome articles by Evolving Web

Specbee: Simplifying Drupal and Salesforce integration: A how-to guide

"Teamwork makes the dream work" – and that’s especially true for marketing, sales, and operations. When these teams are aligned, you deliver consistent messaging and improve customer experience. The result? Faster conversions and greater efficiency. How do you make this happen? By integrating your CMS with your CRM! So if you have a Drupal website and you use a CRM like Salesforce, you must bring them together. With this integration you can connect your website with your favorite CRM and share customer data across teams. Marketing knows what leads are coming in, sales can act on them quickly, and operations ensure a flawless delivery. Everyone's on the same page, and things move faster! If you’re looking to sync data with your Salesforce instance automatically, this blog is the perfect starting point for you. We will be using the Salesforce Suite module to help you understand the integration in this blogpost. But first, let us give a brief overview of Salesforce integration and its benefits. What is Salesforce Salesforce is a leading cloud-based enterprise customer relationship management system. It makes it easy for businesses to track customer activity which helps effectively manage sales, analytics, customer service, marketing automation, and many more. Salesforce-Drupal integration use cases Drupal websites have the advantage of integrating seamlessly with third-party systems. In fact, Drupal offers several modules to make these integrations smooth. The main goal of a CRM system integration with Drupal is to have seamless data transfer between the systems and make some meaningful decisions using the data from both ends. Now, let us see where and what are the specific use cases in the business this integration is required: User activities tracking: The activities such as page views, interactions, downloads, etc. can be captured and analyzed by the CRM to create personalized user segments. Lead Generation: You can have lead generation forms, for example, contact forms and webforms to send the user information to the CRM that can be analyzed. Commerce Sites: The user's order history, account information, and product interaction can be displayed in a dashboard. Product Suggestions: Personalized recommendations can be created on the website based on the user activities on the CRM Sales Opportunities: Lead generation forms can be converted into sales or business opportunities. Consolidated data: You can have sync user profiles between the CRM and CMS for a more complete view. Benefits of integrating Salesforce and Drupal Integrating Drupal with Salesforce brings a lot of benefits. Here are a few: Enhanced customer engagement: With data synchronization, the customer data is regularly updated, providing timely information on user actions and preferences. We can have faster issue resolution processes, and better custom responses, and as a result, we will have improved customer service. Easier data management: With the integration, there is no need to transfer customer data between CMS and CRM, which otherwise happens by copying and pasting the data. All relevant data is readily available to businesses to make decisions. Collaboration between departments: Thanks to the CRM integration, accurate, comprehensive, and timely data is shared among various departments, minimizing the risk of data discrepancies. The communication within the departments will be better and communication of all the departments with the customers will be more consistent and aligned. Actionable insights: With the consolidated data present in the CRM and website, the business has a comprehensive understanding of customers' needs and preferences. This gives valuable insights for personalized and targeted marketing campaigns. The Salesforce Suite Drupal module This module is the most robust and reliable tool for integrating Drupal with Salesforce CRM, making it an ideal starting point for your integration. The module created a seamless integration between Drupal and Salesforce that synchronizes Salesforce objects, such as Contacts and Accounts, with Drupal entities, such as nodes, terms, and users. Prerequisites for the integration: Create a salesforce developer account. You can either start from https://developer.salesforce.com/signup or use this video to create one. Create a New Salesforce Connected App for authentication purposes. Add the API settings for JWT auth or basic auth, Download and install the Salesforce Suite module into the Drupal site. Enable the required module for integration. The Salesforce Suite module features various submodules that perform different tasks. Let’s see a few modules which are generally used: Salesforce Integration: Maintains integration between Salesforce and Drupal Salesforce OAuth: For Basic OAuth authorization Salesforce JWT Auth: Provides functionality for key-based authentication system for Salesforce Salesforce Mapping and UI: Provides mapping interface to map Drupal entities to Salesforce objects. Salesforce Push & Salesforce Pull: Provides functionalities to have data sync between Salesforce and Drupal based on the mappings created.  Salesforce Logger: Consolidated logger for logging Salesforce events. Salesforce Authorization There are two commonly used techniques within the Salesforce suite module for Drupal-Salesforce Authentication i.e Basic User Agent oAuth & JWT based oAuth. Setting up of the Salesforce-Drupal authorization can be divided to two steps as mentioned below: Step 1. Salesforce Connected App Setup a Connected App on Salesforce instance Login to Salesforce, navigate to Setup → Platform Tools → Apps → App Manager → New Connected App. This navigation path is applicable only,  if you are using lightning experience UI on the salesforce If you are using Salesforce class UI, navigate to Setup → Manage Apps → Connected Apps → New In the new connected App, there are some basic settings like names and contact details to be provided. In the API settings section: Check the “Enable oAuth Settings” checkbox. Add the callback URL for the site, site_url/salesforce/oauth_callback Select the OAuth Scopes, we need to select the four mandatory scopes: Full access (full) Manage user data via APIs (api) Manage user data via Web browsers (web) Perform request at anytime (refresh_token, offline_access) Save the connected App Gather the salesforce key and secret details as they are needed to configure in the Drupal website for successfully establishing the connection. If you want to use JWT based authentication, there are few more steps to be followed while creating the Connected App Generate the public/private key using the below command openssl req -newkey rsa:2048 -nodes -keyout privatekey.pem -x509 -days 365 -out publickey.pem The private key “privatekey.pem” must be added in Drupal as an authentication key in the key settings page. Login into Drupal as admin, navigate to “admin/config/system/keys”. In the Drupal keys configuration page, make sure to select "File" as the "Key provider" dropdown. Check the "Strip trailing line breaks" checkbox in the "Provider settings" tab, and specify the right path for “privatekey.pem” The public key “publickey.pem” must be uploaded on salesforce. On the connected App, all the basic settings as mentioned in the above section remain the same. Additionally, we must do the following in the API settings: Check the “Use digital signatures” checkbox The public key “publickey.pem” must be uploaded using the “Choose File” button.   Save the connected App. Gather the salesforce key and secret details as they are needed to configure in the Drupal website for successfully establishing the connection. Step 2. Connecting the app on Drupal Once the Authorization is completed on Salesforce and we have the consumer key, secret details, we can start configuring the connection on the Drupal site Login as admin on Drupal website Navigate to Configuration → Salesforce → Salesforce Authorization or visit “admin/config/salesforce/authorize” This page will list all the providers that exist in our Drupal website. Click on “Add Salesforce Auth Provider” button As mentioned in the above section, we have two different “Auth providers”: Salesforce OAuth User-Agent:   Add the Label, consumer key and consumer secret and save the form This will redirect the user to salesforce login and post doing auth activities on the salesforce it will return to Drupal screen with successful established connection. Salesforce JWT OAuth Add the Label, consumer key and login user. Select the private key that we have added while generating the keys. Save the form. On save, it will redirect to the auth providers page with a successful established connection. Salesforce Mappings On successful authorization, we must tell both Drupal and Salesforce how to talk to each other. Please find the steps to below: Login as admin into your Drupal site Head to Salesforce mappings page, Structure → Salesforce → Salesforce Mappings Click on “Add Mapping” to map a new one Fill in the basic information, add the Drupal entity and select the Salesforce object to sync the data. Add the action triggers on which the sync has to take place Once the basic settings are set we head on the field mapping screen where we map Drupal entity fields to Salesforce object properties. We must set the direction in which the field data sync has to take place. We have three different sync mechanisms; “Drupal to SF”, “SF to Drupal” and  “Sync” After setting up mappings to all the fields, save the mapping After the authorization and mappings are set up properly, each time the cron runs, if a new record is added, an existing record is updated, or a record is deleted, the data will be synced between Drupal and Salesforce according to the direction and trigger selected in the mappings. Final thoughts This is just the basic guide for integrating Drupal with Salesforce. There's a lot more you can do, like customizing queries for specific use cases. No matter what you need, Drupal allows for seamless implementation. By integrating Salesforce CRM with Drupal, you can enhance your customer management workflows, streamline operations, and boost overall efficiency. If you're ready to kick off your next big integration, reach out to our Drupal development company, and one of our experts will guide you every step of the way.

Liip: DrupalCon Barcelona Recap

DrupalCon Barcelona Group picture by Bram Driesen (source)

Hola de nou barcelona

Barcelona for me has a long history of Drupal. For Drupal Dev Days 2012 I organized a mapping sprint, we cycled to DrupalCon Barcelona 2015 as part of the #tourdedrupal report , pictures and it was nice to visit a more local event - Drupal Summer - in 2016 (report, pictures).

Image removed.Coding beyond functionality. Altering technologies through artistic research by Mónica Rikić

Drupal CMS: una nova experiència immediata per a Drupal

This year, the focus was on Drupal CMS (previously known by its internal development name Starshot) which is all about bringing Drupal to the next level by creating an out-of-the-box experience including a new way to create layouts (Experience Builder), integrating AI features and many more features. If you like to dive deeper into Drupal CMS, check out the meta issue listing all work tracks as well as the landing page on Drupal.org.

Image removed.Driesnote by Dries Buytaert

A similar, prepackaged version of Drupal already exists, handcrafted by many individuals and agencies. Recipes have recently been introduced to Drupal core. They allow to package configuration and content to pre-configure Drupal for common use cases like Search, SEO-optimization or an Event calendar feature.

Check out our blökkli starterkit that provides you will a fully-preconfigured setup that we use at Liip.

Image removed.DrupalCon Crowd

Drupal al govern

We saw Drupal's wide adoption for Government at DrupalCon Barcelona.

Implementing AI solutions for the French government - in this session it was demonstrated how public services were improved. AI technology would support the public servants by pregenerating responses that would be validated and modified by the public servant. The use of AI technology cut down response times from an average of 19 days to 3 days and a plus of 11% found the received answers helpful. 

Running a fleet of web sites with ease via LocalGov Drupal Microsites Platform showed a feature that we are also planning to roll out to one of our customers soon. You can easily manage multiple microsites in Drupal and configure on a per-site-basis the needed styling options in order to customize it to each site needs. By leveraging one CMS basis, the time-to-market and total cost of ownership for each microsite can be heavily reduced.

Image removed.Jonathan Noack & Thom Nagy presenting about bs.ch

Large-scale content creation with Drupal — Delights, Pitfalls and support structures to help editors - in this session our customer Thom Nagy & our product owner Jonathan Noack presented their case study on relaunching bs.ch. I liked to see how a trustful collaboration with strong communication and stakeholder management combined with agile delivery and innovation led to an outcome all participants are proud about.

The website is our flagship showcase for blökkli, the interactive pagebuilder that has delighted many of our customers already and is available for the community under the open-source license.

Even though the canton is embedded in a typically restrictive government environment, they even launched the first AI-based assistant "Alva" that answers any questions the public might have about the canton in their own language using GPT-based technology.

Sostenibilitat

Conferences that bring together folks from all over the world have a hard time being sustainable. I appreciate the efforts to promote sustainable transport for example when amongst the attendees traveling by train, a winner was selected.

The organizing team also worked with the sponsors to make sure they were taking sustainability into account for how they set up their booths and limit the swag they would give out to participants.

Image removed.DrupalCon Barcelona Mascot watching the crowd

The next DrupalCon Europe has been announced to happen in Vienna October 14-17 2025. I am particularly excited for this location as I grew up in Vienna and have been part of the Drupal Austria community as an organizing member before moving to Switzerland.

As Vienna is at the heart of Europe, I encourage you to think about sustainable ways to get to the conference.

If you travel via Hamburg, Bregenz/Feldkirch, Roma/Blorence/Bologna or Amsterdam, you should even be able to sleep on one of the new generation nightrains that offers better comfort, single-cabins and wheelchair-accessible sleepers. You typically can book your train 6 months ahead. As they introduced dynamic pricing recently, it is recommended to book your tickets early.

Image removed.The beach alongside DrupalCon Barcelona

I leave you with some pictures from this year in Barcelona

Would you like to learn more about Drupal? Find an event near you. See you 2025 at one of my favorites Drupal Mountain Camp in Davos or at DrupalCon Vienna.