{"id":19603562,"url":"https://github.com/limit-zero/leads-tenant-merge","last_synced_at":"2026-06-09T01:03:10.749Z","repository":{"id":39917763,"uuid":"229468985","full_name":"limit-zero/leads-tenant-merge","owner":"limit-zero","description":"One-time tenant merge utility","archived":false,"fork":false,"pushed_at":"2022-06-25T09:40:17.000Z","size":358,"stargazers_count":0,"open_issues_count":9,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-22T19:44:00.725Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/limit-zero.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-21T18:44:07.000Z","updated_at":"2019-12-23T13:21:00.000Z","dependencies_parsed_at":"2022-09-21T04:51:11.975Z","dependency_job_id":null,"html_url":"https://github.com/limit-zero/leads-tenant-merge","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/limit-zero/leads-tenant-merge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/limit-zero%2Fleads-tenant-merge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/limit-zero%2Fleads-tenant-merge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/limit-zero%2Fleads-tenant-merge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/limit-zero%2Fleads-tenant-merge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/limit-zero","download_url":"https://codeload.github.com/limit-zero/leads-tenant-merge/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/limit-zero%2Fleads-tenant-merge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34086664,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T09:30:14.961Z","updated_at":"2026-06-09T01:03:10.735Z","avatar_url":"https://github.com/limit-zero.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Models / Collections\n\n[x] Note: must handle campaign.excludeUrls `urlId` and `sendId` together in one process.\n\n## ad-creative-trackers (done)\n- no ddt data\n\n## ad-creatives (done)\n- no ddt data\n\n## behavior-entities (done)\n- no ddt data\n\n## behavior-views (done)\n- no ddt data\n\n## campaigns (done)\n- 314 ddt records\n- relationships\n  - customerId\n    - 64 distinct customerIds\n  - email.tagIds\n    - 0 distinct tagIds\n  - email.excludeUrls.urlId\n    - 6 campaigns with this field set\n  - email.excludeUrls.sendId\n    - 6 campaigns with this field set\n  - forms.excludeFormIds\n    - 0 distinct formIds\n  - ads.tagIds\n    - 0 distinct tagIds\n  - ads.excludeTrackerIds\n    - 0 distinct tracker ids\n- models that reference this\n  - identity (can be ignored, no data)\n\n## click-requests (done)\n- can likely ignore\n\n## content-query-results (done)\n- can ignore\n\n## customers (done)\n- 239 ddt records\n- unique index on `key` field (when not deleted)\n- when a duplicate key is found, merge with IEN customer\n- relationships\n  - parentId\n    -  0 records\n- models that reference this\n  - [x] campaign\n  - [x] extracted-host\n  - [x] extracted-url\n  - form (can be ignored, no data)\n  - identity (can be ignored, no data)\n  - [x] order\n\n## email-categories (done)\n- 22 ddt records\n- externalSource.identifier values will need to be handled for DDT BU\n- relationships\n  - parentId\n    - 21 categories with this field set\n    - 6 distinct categoryIds\n- models that reference this\n  - [x] email-category\n  - [x] email-deployment\n  - [x] email-send-url\n  - line-item (can be ignored, no data)\n\n## email-deployments (done)\n- 721 ddt records\n- externalSource.identifier values will need to be handled for DDT BU\n- relationships\n  - categoryId\n    - 721 deployments with this field set\n    - 20 distinct categoryIds\n- models that reference this\n  - [x] email-send-url\n  - [x] email-send\n\n## email-send-urls (done)\n- 31,230 ddt records\n- unique key on sendId, urlId\n- relationships\n  - deploymentId\n    - 721 distinct deploymentIds\n  - sendId\n    - 1,307 distinct sendIds\n  - categoryId\n    - 9 distinct categoryIds\n  - urlId\n    - 5,114 distinct urlIds\n\n## email-sends (done)\n- 1,308 ddt records\n- externalSource.identifier values will need to be handled for DDT BU\n- relationships\n  - deploymentId\n    - 721 distinct deploymentIds\n- models that reference this\n  - [x] campaign\n  - [x] email-send-url\n  - [x] event-email-click\n  - line-item (can be ignored, no data)\n\n## errors (done)\n- can likely ignore\n\n## event-ad-creatives (done)\n- no ddt data\n\n## event-email-clicks (done)\n- 458,689 ddt records\n- unique index on `day`, `job`, `url`, `usr`\n- relationships\n  - url (extractedUrlId)\n  - usr (identityId)\n  - job (sendId)\n\n## excluded-email-domains (done)\n- no ddt data\n\n## extracted-hosts (done)\n- 129 ddt records\n- unique index on `value`\n- relationships\n  - customerId\n    - 14 hosts with this field set\n    - 14 distinct customerIds\n  - tagIds\n    - 0 hosts with this field set\n- models that reference this\n  - [x] extracted-url\n\n## extracted-urls (done)\n- 6,137 ddt records\n- unique index on `shortId`\n- unique index on `values.original`\n- relationships\n  - resolvedHostId\n    - all urls have this field set\n    - 113 distinct hostIds\n  - customerId\n    - 904 urls with this field set\n    - 234 distinct customerIds\n  - tagIds\n    - 4,649 urls with this field set\n- models that reference this\n  - [x] campaign\n  - [x] email-send-url\n  - [x] event-email-click\n  - line-item (can ignore, no data)\n  - [x] url-acknowledgment\n\n## form-entries (done)\n- no ddt data\n\n## forms (done)\n- no ddt data\n\n## honey-pots (done)\n- can likely ignore\n\n## identities (done)\n- 21,871 ddt records\n- externalSource.identifier values will need to be handled for DDT BU\n- need to determine how to handle \"duplicate\" email addresses\n- relationships\n  - inactiveCustomerIds\n    - 0 records\n  - inactiveCampaignIds\n    - 0 records\n  - inactiveLineItemIds\n    - 0 records\n- models that reference this\n  - [x] event-email-click\n- api verification\n  - 672 transferrable records were not found in the IEN API\n  - all of these were also not found in the DDT API\n  - conclusion: these were removed from ET entirely\n\n## line-items (done)\n- 3 ddt records\n- relationships\n  - orderId\n    - 3 records\n    - 3 distinct orderIds\n  - categoryIds\n    - 0 records\n  - tagIds\n    - 0 records\n  - excludedUrls.urlId\n    - 0 records\n  - excludedUrls.sendId\n    - 0 records\n- models that reference this\n  - identity (can ignore, no data)\n\n## orders (done)\n- 3 ddt records\n- relationships\n  - customerId\n    - 3 records\n    - 3 distinct customerIds\n  - salesRepId (userId)\n    - 3 records\n    - 2 distinct userIds\n- models that reference this\n  - [x] line-item\n\n## pings (done)\n- can ignore\n\n## tags (done)\n- 5 ddt records\n- unique index on `name` (when not deleted)\n- models that reference this\n  - campaign (can ignore, no data)\n  - extracted-host (can ignore, no data)\n  - [x] extracted-url\n  - line-item (can ignore, no data)\n\n## tracked-campaigns (done)\n- no ddt data\n\n## url-acknowledgments (done)\n- 757 ddt records\n- unique index on `shortId`\n- relationships\n  - urlIds\n\n## users (done)\n- 18 ddt records\n- unique index on `email` (when not deleted)\n- merge with ien records\n- models that reference this\n  - [x] order\n\n## videos (done)\n- no ddt data\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flimit-zero%2Fleads-tenant-merge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flimit-zero%2Fleads-tenant-merge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flimit-zero%2Fleads-tenant-merge/lists"}