# Modules
# Introduction
One of the most important advantages of our platform is the ability to create your own blocks. We call them Modules. We are in the first iteration of this feature and intend to expand on it.
# Key concepts
# Versioning
Modules are versioned. When the module is used in a pipeline, it is always a specific version. That way, the module users can upgrade in a controlled manner.
# Public modules
By default, the modules are private. That means the modules are only visible to you and your team. We encourage you to publish your module so that other users on the system can use it in their pipelines.
Even if your module is public, some versions can be private. This way, you can keep the development private before publishing or even have versions with some hidden capabilities.
# Parameters
The module can have its own parameters that will be configured later in the pipeline form.
To define those, go to “Update Module” and add as many parameters as needed.
The parameters later can be referred with $(name)
# Example
SendGrid module
Parameters
Let’s see the transform:
{
"from": {
"email": "$(fromEmail)",
"name": "$(fromName)"
},
"personalizations": [
{
"to": [
{
"email": "$(toEmail)"
}
],
"dynamic_template_data": "$(templateData)"
}
],
"template_id": "$(emailTemplateId)"
}
Note the syntax to refer to the module parameters
Let’s use it in a pipeline:
And this is how it will look like in a Shopify GDPR notification webhook:
← Transforms Context →