Every modern data team wants seamless connectivity to the data APIs and application data critical to their business. At Fivetran, we’re committed to making data movement effortless—and that means streamlining the process of writing custom connectors. We released our new Connector SDK product into General Availability (GA) in February of 2025, and it offers a game-changing experience for building custom connectors especially when paired with Anthropic’s newly updated Claude code-writing agent. Recently, we set out to build a custom Connector SDK connector for the PokéAPI, to test it out.
Pairing Fivetran Connector SDK with Claude, we were able to:
- Rapidly create a Fivetran connector for PokéAPI.
- Test and iterate on the code in real time.
- Achieve a fully functioning connector with four tables in under an hour.
- Spend just $3.01 in the process!
Below, we’ll share how we got started, the steps we took, and how AI accelerated our development workflow.
Getting Started
1. Installing Node.js and Claude Code
We needed Node.js 22. We installed nvm (Node Version Manager):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
install nvm
nvm install 22
nvm use 22
After that, we installed Claude Code:
npm install -g @anthropic-ai/claude-code
2. Setting up Google Vertex AI for Claude Code (Optional)
We will be using Google Vertex AI with Claude code to make 3rd party API requests. You can do this if you have an active billing account in GCP. Otherwise, you can use the Anthropic APIs and skip this step.
- Enabling the APIs in Google Vertex AI: Navigate to Model Garden in Vertex AI. Search for the Claude 3.7 Sonnet and Claude 3.5 Haiku models. Fill out the forms to enable both of them.
- Install the Google Cloud SDK: Please follow the steps mentioned here.
- After installation, please authenticate by running the following command, so that Claude Code can use standard GCP credentials configured through google-auth-library:
gcloud auth application-default login
- We need to export the following variables so that Claude Code can use Vertex APIs
export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=us-east5
export ANTHROPIC_VERTEX_PROJECT_ID=<YOUR_PROJECT_ID>
Note: Please adjust the API Quotas for your GCP project for the best experience.
3. Cloning the Fivetran Connector SDK Example
With Claude ready to go, we cloned the Fivetran Connector SDK example repository. This example repo provides many examples of Fivetran Connector SDK in action. This includes simple examples to help you get started writing a connector, examples of how to write code for many of the common patterns you are likely to encounter, and full examples for many Sources. These examples are especially helpful if it’s your first time working with our SDK.
We already had Python installed on our Mac so were able to move on to working with Claude.
Working with Claude AI
Once the environment was set up, we launched Claude AI from within our cloned Fivetran Connector SDK examples directory and initialized it by running:
claude
Our first Claude command was:
/init
Claude scanned the example code and automatically generated a CLAUDE.md
file. Claude uses this file in each project to store context and instructions. We then provided it with a
Fivetran Connector SDK technical reference by copying and pasting the web page contents into our terminal to help it give Claude context on how to use Connector SDK. Our CLAUDE.md
file is now available in our example repo to save you generating it along with all the code generated during this exploration: fivetran_connector_sdk/ai_and_connector_sdk/.
Prompting Claude
Our main prompt to Claude was:
“I’d like you to help me create and test a Fivetran connector SDK connector to gather lots of data from the PokéAPI and deliver that into my destination in Fivetran.”
That was it!
Claude generated the main Fivetran custom connector file: connector.py
file and saved it to the directory we told it to use for the project. It also created a matching configuration.json
file, which is used at deployment to set the specific configuration values for a particular instance of a connector. Passing configuration values at deployment ensures that Fivetran can store them securely.
Iterating on the connector code
While Claude’s initial code was close, we needed to tell it to adjust the structure of the configuration file. The first version included nesting, which is not supported. Claude corrected the file and asked us to confirm that we wanted to save the updated option. Following a failed deployment attempt, the configuration file was updated to contain only strings, which prompted us to adjust the connector.py
code to handle this type of change.
We also tested whether it would move our project from the initial location we had specified—it did flawlessly!
Testing and debugging
With the code created the real test was coming - would it run and if so what data would end up in our warehouse? We asked Claude:
“now I want to test the connector”
Claude first tried changing the directory to the one containing the generated code, but in response to an error message it immediately adjusted, running Fivetran’s local test command from the project and using relative links to point to the connector code:
Bash(cd ../../Code/claude_test_20250228 && pip install -r requirements.txt)…
⎿ ERROR: cd to '/Users/alison.kline/Code/claude_test_20250228' was blocked. For security, Claude Code may only change directories to child directories of the original working directory
(/Users/alison.kline/Fivetran/fivetran_customer_sdk) for this session.
⏺ I see the issue. Let's try running the test from our current location:
⏺ Bash(ls -la ../../Code/claude_test_20250228)…
⎿ total 40
drwxr-xr-x@ 5 alison.kline staff 160 Feb 28 12:56 .
drwxr-xr-x 13 alison.kline staff 416 Feb 28 12:52 ..
-rw-r--r--@ 1 alison.kline staff 89 Feb 28 12:56 configuration.json
-rw-r--r--@ 1 alison.kline staff 8665 Feb 28 12:54 connector.py
-rw-r--r--@ 1 alison.kline staff 39 Feb 28 12:54 requirements.txt
⏺ Bash(pip install -r ../../Code/claude_test_20250228/requirements.txt)…
... lots of pip package installing messages ...
Successfully installed fivetran-connector-sdk-1.1.4 unidecode-1.3.8
⎿ [notice] A new release of pip is available: 24.2 -> 25.0.1
[notice] To update, run: pip install --upgrade pip
⏺ Now let's test the connector using the Fivetran debug command:
⏺ Bash(fivetran debug ../../Code/claude_test_20250228)…
⎿ Feb 28, 2025 01:01:02 PM WARNING: Configuration file detected in the project, but no configuration input provided via the command line
Feb 28, 2025 01:01:02 PM INFO: Downloading connector tester version: 0.25.0225.001
✓
You’ll notice that the debug command didn’t pass in a configuration.json
file, but that turned out not to matter as it had written the code to use a default for each configuration parameter and in this case no auth secrets were needed.
We also found it disconcerting that we only saw the messages from the Connector SDK once the whole prompt returned. Given that running the full debug command took a few minutes, this was different from running the local tester manually.
That said, the connector successfully completed a sync the first time—no major issues or extended troubleshooting required!
Additionally, the schema for the four tables seems sensible and coherent.

Unlike our prior attempts to use AI to write a custom connector, Claude generated a multi-table, fully functioning custom connector in under an hour.
Deploying
We asked Claude about deploying the connector, and it gave us step-by-step instructions, including a deploy command populated with a connector name and the right configuration file. Given that we had to use our Fivetran API key, we were happy to open a second terminal window, navigate to our newly created code, and run the one command there.
We were alerted to the use of non-strings in the configuration file, which Claude helped fix.
Results and reflections
- Cost and speed: We spent just $3.01 and under an hour working with Claude AI. This is game-changing for rapid prototyping.
- Accuracy: Claude’s code suggestions were generally well-aligned with the Fivetran Connector SDK, and the ability to refine with short prompts was incredibly powerful.
- Ease of use: Pairing the Connector SDK with Claude made building and testing straightforward; tasks with knock-on dependencies like changing the datatype of a configuration parameter were a breeze given the context-aware assistant.
What’s next?
We’re looking forward to building more custom connectors and feel confident that Claude will make it fun and productive.
We recommend experimenting with Claude for anyone interested in using AI to speed up custom connector development. With minimal setup and a few environment variables, it becomes a powerful co-pilot for code generation and iteration.
Conclusion
Custom connectors are an essential part of empowering data teams to access any data source. By combining the Fivetran Connector SDK with Anthropics’ Claude AI, we were able to quickly prototype, test, and deploy a PokéAPI connector—faster and cheaper than we ever expected.
If you’re ready to build your own Fivetran Connector SDK project, get started here, or check out the Anthropic Claude documentation to see how AI can enhance your workflow.
Have questions or an interesting connector use case? Let us know on Twitter @Fivetran or drop us a line at info@fivetran.com. We can’t wait to see what you build!
[CTA_MODULE]