## What
This PR improves the Iterable source connector documentation by:
- Removing a broken link to internal issue #24968 that is not accessible
to end users
- Clarifying prerequisites and API key requirements
- Adding detailed documentation about incremental sync behavior and
error handling
The changes were requested by ian.alton@airbyte.io to verify and improve
the connector documentation.
**Link to Devin run**:
https://app.devin.ai/sessions/4570bbfaf450476782d6f5dfe1e30cab
## How
The documentation updates include:
1. **Fixed broken issue reference** (line 77): Replaced link to
non-existent issue #24968 with a clear explanation of the List Users
error handling behavior
2. **Enhanced Prerequisites section** (lines 5-9): Clarified that only
Server-side API keys with Standard permissions are supported (not Mobile
or Browser keys)
3. **Added Performance and data retrieval section** (lines 77-91):
- Documents 90-day interval slicing for Users stream with
`profileUpdatedAt` cursor
- Explains adaptive slicing for Event streams
- Documents Templates stream incremental sync with `updatedAt` cursor
- Details retry logic with exponential backoff (10 retries, 20-400
second delays)
Changes were based on code review of:
- `source_iterable/manifest.yaml` (Users stream configuration)
- `source_iterable/streams.py` (retry logic, error handling)
## Review guide
1. **docs/integrations/sources/iterable.md** - Focus on:
- Lines 83-84: Verify the 90-day interval and `profileUpdatedAt` cursor
field are accurate for Users stream
- Lines 91: Confirm retry delays (20-400 seconds) and max retries (10)
match the implementation
- Lines 89-90: Ensure List Users error handling description is accurate
- Overall: Check if the new technical details are helpful for end users
vs too implementation-specific
## User Impact
**Positive:**
- End users now have clearer guidance on API key requirements
- Better understanding of how incremental syncs work and how much data
will be requested at once
- No longer confused by a broken link to an inaccessible internal issue
**Neutral:**
- More detailed technical information may be helpful for troubleshooting
but could also be overwhelming
## Can this PR be safely reverted and rolled back?
- [x] YES 💚
This is a documentation-only change with no code modifications.
Reverting would simply restore the previous documentation state.
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: ian.alton@airbyte.io <ian.alton@airbyte.io>
# Update source-iterable
This PR was autogenerated by running `airbyte-ci connectors
--name=source-iterable up_to_date --pull`
We've set the `auto-merge` label on it, so it will be automatically
merged if the CI pipelines pass.
If you don't want to merge it automatically, please remove the
`auto-merge` label.
Please reach out to the Airbyte Connector Tooling team if you have any
questions or concerns.
## Operations
- Upgrade the base image to the latest version in metadata.yaml: Skipped
- Update versions of libraries in poetry: Successful
- PATCH bump source-iterable version to 0.6.52: Successful
- Build source-iterable docker image for platform(s) linux/amd64,
linux/arm64: Successful
- Get dependency updates: Successful
- Create or update pull request on Airbyte repository: Successful
- Add changelog entry: Successful
## Dependency updates
We use [`syft`](https://github.com/anchore/syft) to generate a SBOM for
the latest connector version and the one from the PR.
It allows us to spot the dependencies that have been updated at all
levels and for all types of dependencies (system, python, java etc.).
Here are the dependencies that have been updated compared to
`airbyte/source-iterable:latest`.
Keep in mind that `:latest` does not always match the connector code on
the main branch.
It is the latest released connector image when the head commit of this
branch was created.
| Type | Name | State | Previous Version | New Version |
|------|------|-------|-------------|------------------|
| python | MarkupSafe | updated | 3.0.2 | **3.0.3** |
| python | PyYAML | updated | 6.0.2 | **6.0.3** |
| python | anyio | updated | 4.10.0 | **4.11.0** |
| python | attrs | updated | 25.3.0 | **25.4.0** |
| python | cachetools | updated | 6.1.0 | **6.2.1** |
| python | cattrs | updated | 25.1.1 | **25.3.0** |
| python | certifi | updated | 2025.8.3 | **2025.7.9** |
| python | cffi | updated | 1.17.1 | **2.0.0** |
| python | charset-normalizer | updated | 3.4.3 | **3.4.4** |
| python | idna | updated | 3.10 | **3.11** |
| python | orjson | updated | 3.11.2 | **3.11.3** |
| python | platformdirs | updated | 4.3.8 | **4.4.0** |
| python | pycparser | updated | 2.22 | **2.23** |
| python | pydantic | updated | 2.11.7 | **2.12.1** |
| python | pydantic_core | updated | 2.33.2 | **2.41.3** |
| python | requests | updated | 2.32.4 | **2.32.5** |
| python | typing-inspection | updated | 0.4.1 | **0.4.2** |
| python | typing_extensions | updated | 4.14.1 | **4.15.0** |
| python | source-iterable | removed | 0.6.46 | **not present** |
> [!IMPORTANT]
> **Auto-merge enabled.**
>
> _This PR is set to merge automatically when all requirements are met._
Co-authored-by: octavia-bot-hoard[bot] <230633153+octavia-bot-hoard[bot]@users.noreply.github.com>
## What
This PR fixes minor documentation issues in the Iterable source
connector documentation following recent schema changes. Specifically:
1. **Grammar correction**: Fixed "when meet" → "when meeting" in the
Additional notes section
2. **Duplicate removal**: Removed duplicate changelog entry for version
0.2.1
These changes improve documentation readability and accuracy as part of
the connector documentation review process.
## How
- Updated the grammar in the "Additional notes" section to use proper
English
- Removed the duplicate changelog entry that was identical to the line
above it
## Review guide
1. `docs/integrations/sources/iterable.md` - Review the grammar fix in
the "Additional notes" section and verify the removed changelog entry
was indeed a duplicate
## User Impact
- **Positive**: Improved documentation readability and reduced confusion
from duplicate changelog entries
- **Negative**: None - these are minor editorial improvements
## Can this PR be safely reverted and rolled back?
- [x] YES 💚
---
**Link to Devin run**:
https://app.devin.ai/sessions/8d9f082822de4013a9db18269039dca4
**Requested by**: User via automated documentation review process
**Note**: I am an AI agent and have proposed these documentation updates
based on review of the connector documentation. Reviewers can merge this
PR, modify it, or close it if they disagree with the changes.
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
## What
Fixes array column serialization errors in source-iterable streams by
properly defining array item types in JSONSchema definitions.
**Problem:** Array columns (e.g., `campaigns.labels`, `emailListIds`,
`channelIds`, `categories`) were being written as null values to the S3
Data Lake destination with `DESTINATION_SERIALIZATION_ERROR` in the
`_airbyte_meta` column.
**Root Cause:** Multiple stream schemas had array definitions with empty
`items: {}`, which is ambiguous and prevents proper type mapping to
destinations like Iceberg/Glue.
**Affected Streams:**
- `email_unsubscribe` (emailListIds, channelIds)
- `email_send` (categories)
- `email_send_skip` (categories)
- `email_subscribe` (emailListIds)
- `campaigns` (listIds, suppressionListIds, labels)
## How
Updated JSONSchema definitions across affected stream schema files to
specify explicit item types for all array fields:
**Before:**
```
"emailListIds": {
"type": ["null", "array"],
"items": {}
}
```
After:
```
"emailListIds": {
"type": ["null", "array"],
"items": {
"type": "integer"
}
}
```
## Review guide
source_iterable/schemas/campaigns.json - Check listIds,
suppressionListIds, labels
source_iterable/schemas/email_unsubscribe.json - Check emailListIds,
channelIds
source_iterable/schemas/email_send.json - Check categories (in
transactional data)
source_iterable/schemas/email_send_skip.json - Check categories (in
transactional data)
source_iterable/schemas/email_subscribe.json - Check emailListIds
Verify that all "items": {} instances have been replaced with proper
type definitions.
## User Impact
None expected - this is a schema clarification that aligns with actual
data types.
## Can this PR be safely reverted and rolled back?
- [X] YES 💚
- [ ] NO ❌
---------
Co-authored-by: Octavia Squidington III <octavia-squidington-iii@users.noreply.github.com>