Submit PR for New Integration
3 minute read
This guide walks you through contributing a new integration to RudderStack’s open source repositories, so that your code fits into the existing codebase and is ready for review.
To create and submit an integration, you contribute to the following repositories:
| Repository | Link | Description |
|---|---|---|
| RudderStack Transformer | rudder-transformer | Transforms the standard RudderStack payload from the source to the required destination payload format. |
| RudderStack Integrations Config | rudder-integrations-config | Defines the integration and the settings users configure for it in the RudderStack dashboard. |
Create a pull request
Follow the steps below to create a pull request and submit your integration to our open source code:
- Fork and clone the above-mentioned repositories on your local machine. If you’ve done it already, make sure the local repositories are up to date to prevent merge conflicts.
- Create a branch with a clear, descriptive name.
- Push your changes to the remote origin.
- Click New pull request in the RudderStack repository.
- Click Compare across forks.
- Change the Head Repository to your forked repository and change Compare to the associated branch name.
- Add a title that follows the conventional commits format, for example
feat(my_destination): onboard new destination, and describe how to test your changes. - Click Create pull request.
Repeat the above steps for both repositories. Inrudder-transformer, open the pull request against thedevelopbranch. Inrudder-integrations-config, open it against themainbranch.
RudderStack Transformer
The rudder-transformer repository transforms the source payload into the destination-specific format. Before you write code, read its contributing guide. It describes the current shape of a new integration and points to the repository’s skills, which hold the up-to-date conventions.
Keep the following in mind when contributing to this repository:
- Write new integrations in TypeScript. New destinations use the batching framework.
- Don’t use CDK v2 (YAML workflows) or existing JavaScript destinations as a template. These are legacy approaches.
- Include component tests for your integration, with the partner API calls mocked.
- Run
npm run lintand the tests for your integration before you open the pull request.
If you use an AI coding agent such as Claude Code, it reads the repository’s skills automatically. For other agents, point them to the.claude/skills/directory before they write code.
RudderStack Integrations Config
The rudder-integrations-config repository holds the integration definition: the settings users configure in the RudderStack dashboard and how RudderStack processes the integration. Read its contributing guide and conventions before you start.
Also, note the following:
- Each destination is a folder under
src/configurations/destinationsthat containsdb-config.json,ui-config.json, andschema.json. You can scaffold these with the repository’sbootstrap-new-destinationskill. - Give every text input field an explicit
regexvalidation rule.
Documentation
The RudderStack team writes and publishes the documentation for your integration. In your pull request description or integration plan, include the details needed to set up and use the integration, such as the required credentials, the supported event types, and any limitations. Share the integration’s logo in the SVG format.