Submit PR for New Integration

Submit a pull request to a RudderStack GitHub repository.

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:

RepositoryLinkDescription
RudderStack Transformerrudder-transformerTransforms the standard RudderStack payload from the source to the required destination payload format.
RudderStack Integrations Configrudder-integrations-configDefines 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:

  1. 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.
  2. Create a branch with a clear, descriptive name.
  3. Push your changes to the remote origin.
  4. Click New pull request in the RudderStack repository.
  5. Click Compare across forks.
  6. Change the Head Repository to your forked repository and change Compare to the associated branch name.
  7. Add a title that follows the conventional commits format, for example feat(my_destination): onboard new destination, and describe how to test your changes.
  8. Click Create pull request.
Repeat the above steps for both repositories. In rudder-transformer, open the pull request against the develop branch. In rudder-integrations-config, open it against the main branch.

RudderStack Transformer

GitHub repository

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 lint and 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

GitHub repository

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/destinations that contains db-config.json, ui-config.json, and schema.json. You can scaffold these with the repository’s bootstrap-new-destination skill.
  • Give every text input field an explicit regex validation 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.

Questions? Let's figure it out together.

Join the RudderStack Slack community to connect with other users, customers, and the RudderStack team — or reach out for direct support.