From 855d6a42aa176f3fc458ea6dafd9e3fe64909f94 Mon Sep 17 00:00:00 2001 From: Aries Gunawan Date: Mon, 13 Nov 2023 21:18:04 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Source=20Freshsales=20:=20Migrate?= =?UTF-8?q?=20Python=20CDK=20to=20Low-code=20CDK=20(#31685)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marcos Marx Co-authored-by: marcosmarxm --- .../connectors/source-freshsales/Dockerfile | 2 +- .../connectors/source-freshsales/README.md | 1 - .../connectors/source-freshsales/__int__.py | 3 + .../acceptance-test-config.yml | 2 +- .../integration_tests/expected_records.jsonl | 78 ++--- .../source-freshsales/metadata.yaml | 9 +- .../connectors/source-freshsales/setup.py | 12 +- .../source_freshsales/manifest.yaml | 286 ++++++++++++++++++ .../source_freshsales/schemas/accounts.json | 4 +- .../schemas/completed_tasks.json | 4 +- .../source_freshsales/schemas/contacts.json | 14 +- .../source_freshsales/schemas/lost_deals.json | 6 +- .../source_freshsales/schemas/open_deals.json | 6 +- .../source_freshsales/schemas/open_tasks.json | 4 +- .../schemas/past_appointments.json | 4 +- .../schemas/upcoming_appointments.json | 4 +- .../source_freshsales/schemas/won_deals.json | 6 +- .../source_freshsales/source.py | 213 +------------ .../source_freshsales/spec.json | 24 -- .../source_freshsales/spec.yaml | 23 ++ .../source-freshsales/unit_tests/__init__.py | 3 - .../source-freshsales/unit_tests/conftest.py | 19 -- .../unit_tests/test_source.py | 83 ----- .../sources/freshsales-migrations.md | 6 + docs/integrations/sources/freshsales.md | 1 + 25 files changed, 409 insertions(+), 408 deletions(-) create mode 100644 airbyte-integrations/connectors/source-freshsales/__int__.py create mode 100644 airbyte-integrations/connectors/source-freshsales/source_freshsales/manifest.yaml delete mode 100644 airbyte-integrations/connectors/source-freshsales/source_freshsales/spec.json create mode 100644 airbyte-integrations/connectors/source-freshsales/source_freshsales/spec.yaml delete mode 100644 airbyte-integrations/connectors/source-freshsales/unit_tests/__init__.py delete mode 100644 airbyte-integrations/connectors/source-freshsales/unit_tests/conftest.py delete mode 100644 airbyte-integrations/connectors/source-freshsales/unit_tests/test_source.py create mode 100644 docs/integrations/sources/freshsales-migrations.md diff --git a/airbyte-integrations/connectors/source-freshsales/Dockerfile b/airbyte-integrations/connectors/source-freshsales/Dockerfile index 1c46733029af..07b190ca4b88 100644 --- a/airbyte-integrations/connectors/source-freshsales/Dockerfile +++ b/airbyte-integrations/connectors/source-freshsales/Dockerfile @@ -34,5 +34,5 @@ COPY source_freshsales ./source_freshsales ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py" ENTRYPOINT ["python", "/airbyte/integration_code/main.py"] -LABEL io.airbyte.version=0.1.4 +LABEL io.airbyte.version=1.0.0 LABEL io.airbyte.name=airbyte/source-freshsales diff --git a/airbyte-integrations/connectors/source-freshsales/README.md b/airbyte-integrations/connectors/source-freshsales/README.md index da97f31f2011..c4f2450e08e3 100644 --- a/airbyte-integrations/connectors/source-freshsales/README.md +++ b/airbyte-integrations/connectors/source-freshsales/README.md @@ -97,4 +97,3 @@ You've checked out the repo, implemented a million dollar feature, and you're re 5. Create a Pull Request: use [our PR naming conventions](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#pull-request-title-convention). 6. Pat yourself on the back for being an awesome contributor. 7. Someone from Airbyte will take a look at your PR and iterate with you to merge it into master. - diff --git a/airbyte-integrations/connectors/source-freshsales/__int__.py b/airbyte-integrations/connectors/source-freshsales/__int__.py new file mode 100644 index 000000000000..c941b3045795 --- /dev/null +++ b/airbyte-integrations/connectors/source-freshsales/__int__.py @@ -0,0 +1,3 @@ +# +# Copyright (c) 2023 Airbyte, Inc., all rights reserved. +# diff --git a/airbyte-integrations/connectors/source-freshsales/acceptance-test-config.yml b/airbyte-integrations/connectors/source-freshsales/acceptance-test-config.yml index 8f382499e126..cefc9ad1fffa 100644 --- a/airbyte-integrations/connectors/source-freshsales/acceptance-test-config.yml +++ b/airbyte-integrations/connectors/source-freshsales/acceptance-test-config.yml @@ -5,7 +5,7 @@ test_strictness_level: high acceptance_tests: spec: tests: - - spec_path: "source_freshsales/spec.json" + - spec_path: "source_freshsales/spec.yaml" connection: tests: - config_path: "secrets/config.json" diff --git a/airbyte-integrations/connectors/source-freshsales/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-freshsales/integration_tests/expected_records.jsonl index 552ba6288536..c91403d5fb19 100644 --- a/airbyte-integrations/connectors/source-freshsales/integration_tests/expected_records.jsonl +++ b/airbyte-integrations/connectors/source-freshsales/integration_tests/expected_records.jsonl @@ -1,39 +1,39 @@ -{"stream": "contacts", "data": {"id": 17008318589, "first_name": "Mail Delivery", "last_name": "Subsystem", "display_name": "Mail Delivery Subsystem", "avatar": null, "job_title": null, "city": null, "state": null, "zipcode": null, "country": null, "email": "mailer-daemon@googlemail.com", "emails": "[{'id': 17007443529, 'value': 'mailer-daemon@googlemail.com', 'is_primary': True, 'label': None, '_destroy': False}]", "time_zone": null, "work_number": null, "mobile_number": null, "address": null, "last_seen": null, "lead_score": 14, "last_contacted": null, "open_deals_amount": 7700.0, "won_deals_amount": 0.0, "links": {"conversations": "/crm/sales/contacts/17008318589/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "timeline_feeds": "/crm/sales/contacts/17008318589/timeline_feeds", "document_associations": "/crm/sales/contacts/17008318589/document_associations", "notes": "/crm/sales/contacts/17008318589/notes?include=creater", "tasks": "/crm/sales/contacts/17008318589/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/contacts/17008318589/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note", "reminders": "/crm/sales/contacts/17008318589/reminders?include=creater,owner,updater,targetable", "duplicates": "/crm/sales/contacts/17008318589/duplicates", "connections": "/crm/sales/contacts/17008318589/connections"}, "last_contacted_sales_activity_mode": null, "custom_field": {}, "created_at": "2021-10-19T00:28:18-06:00", "updated_at": "2023-03-23T05:19:22-06:00", "keyword": null, "medium": null, "last_contacted_mode": null, "recent_note": null, "won_deals_count": 0, "last_contacted_via_sales_activity": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_ids": null, "open_deals_count": 2, "last_assigned_at": "2021-10-19T00:28:19-06:00", "facebook": null, "twitter": null, "linkedin": null, "is_deleted": false, "team_user_ids": null, "external_id": null, "work_email": null, "subscription_status": "1", "subscription_types": "1;2;3;4;5", "unsubscription_reason": null, "other_unsubscription_reason": null, "customer_fit": 1, "whatsapp_subscription_status": 2, "sms_subscription_status": "2", "last_seen_chat": null, "first_seen_chat": null, "locale": null, "total_sessions": null, "system_tags": "[]", "first_campaign": null, "first_medium": null, "first_source": null, "last_campaign": null, "last_medium": null, "last_source": null, "latest_campaign": null, "latest_medium": null, "latest_source": null, "mcr_id": "1450348061427834880", "phone_numbers": [], "tags": []}, "emitted_at": 1682419136691} -{"stream": "contacts", "data": {"id": 17008066468, "first_name": "Jane", "last_name": "Sampleton (sample)", "display_name": "Jane Sampleton (sample)", "avatar": "https://img.fullcontact.com/static/4df0efb1ea1a7650fef74f5e44d50d35_ca437b79617f8bbfc40c317b729d32693be1463f356b5be1015b39739859659f", "job_title": "Sales Manager", "city": "Glendale", "state": "Arizona", "zipcode": "100652", "country": "USA", "email": "janesampleton@gmail.com", "emails": "[{'id': 17007194356, 'value': 'janesampleton@gmail.com', 'is_primary': True, 'label': None, '_destroy': False}]", "time_zone": "Arizona", "work_number": "3684932360", "mobile_number": "19266529503", "address": "604-5854 Beckford St.", "last_seen": null, "lead_score": 36, "last_contacted": "2021-10-12T10:06:38-06:00", "open_deals_amount": 22780.0, "won_deals_amount": 11000.0, "links": {"conversations": "/crm/sales/contacts/17008066468/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "timeline_feeds": "/crm/sales/contacts/17008066468/timeline_feeds", "document_associations": "/crm/sales/contacts/17008066468/document_associations", "notes": "/crm/sales/contacts/17008066468/notes?include=creater", "tasks": "/crm/sales/contacts/17008066468/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/contacts/17008066468/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note", "reminders": "/crm/sales/contacts/17008066468/reminders?include=creater,owner,updater,targetable", "duplicates": "/crm/sales/contacts/17008066468/duplicates", "connections": "/crm/sales/contacts/17008066468/connections"}, "last_contacted_sales_activity_mode": "Task", "custom_field": {}, "created_at": "2021-10-07T10:06:37-06:00", "updated_at": "2023-03-23T05:26:56-06:00", "keyword": "B2B Success", "medium": "Blog", "last_contacted_mode": "Email Opened", "recent_note": "Sample note for contact create", "won_deals_count": 4, "last_contacted_via_sales_activity": "2021-10-19T00:27:33-06:00", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_ids": null, "open_deals_count": 5, "last_assigned_at": "2022-09-05T04:44:49-06:00", "facebook": "100010587455650", "twitter": "janesampleton", "linkedin": "jane-sampleton-0b0039109", "is_deleted": false, "team_user_ids": null, "external_id": null, "work_email": null, "subscription_status": "1", "subscription_types": "1;2;3;4;5", "unsubscription_reason": null, "other_unsubscription_reason": null, "customer_fit": 2, "whatsapp_subscription_status": 2, "sms_subscription_status": "2", "last_seen_chat": null, "first_seen_chat": null, "locale": null, "total_sessions": null, "system_tags": "[]", "first_campaign": null, "first_medium": null, "first_source": null, "last_campaign": null, "last_medium": null, "last_source": null, "latest_campaign": null, "latest_medium": null, "latest_source": null, "mcr_id": "1450049339590340608", "phone_numbers": [], "tags": []}, "emitted_at": 1682419136692} -{"stream": "accounts", "data": {"id": 17001321830, "name": "Widgetz.io (sample)", "address": "160-6802 Aliquet Rd.", "city": "New Haven", "state": "Connecticut", "zipcode": "68089", "country": "United States", "number_of_employees": null, "annual_revenue": 0.0, "website": "widgetz.io", "owner_id": null, "phone": "5036153947", "open_deals_amount": 0.0, "open_deals_count": 0, "won_deals_amount": 0.0, "won_deals_count": 0, "last_contacted": "2021-10-12T10:06:38-06:00", "last_contacted_mode": "Email Opened", "facebook": null, "twitter": null, "linkedin": null, "links": {"conversations": "/crm/sales/sales_accounts/17001321830/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/sales_accounts/17001321830/document_associations", "notes": "/crm/sales/sales_accounts/17001321830/notes?include=creater", "tasks": "/crm/sales/sales_accounts/17001321830/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/sales_accounts/17001321830/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "custom_field": {}, "created_at": "2021-10-18T04:41:17-06:00", "updated_at": "2022-06-23T04:25:57-06:00", "avatar": null, "parent_sales_account_id": null, "recent_note": null, "last_contacted_via_sales_activity": "2021-10-19T00:27:33-06:00", "last_contacted_sales_activity_mode": "Task", "completed_sales_sequences": null, "active_sales_sequences": null, "last_assigned_at": "2021-10-18T09:56:31-06:00", "is_deleted": false, "team_user_ids": null, "web_form_ids": null, "tags": []}, "emitted_at": 1682419139166} -{"stream": "accounts", "data": {"id": 17001391875, "name": "Airbyte", "address": "San Francisco, CA", "city": null, "state": null, "zipcode": "94121", "country": null, "number_of_employees": 1, "annual_revenue": null, "website": null, "owner_id": 17000038922, "phone": "+1234567890", "open_deals_amount": 25.0, "open_deals_count": 1, "won_deals_amount": 0.0, "won_deals_count": 0, "last_contacted": "2021-10-19T05:04:54-06:00", "last_contacted_mode": "Call Outgoing", "facebook": null, "twitter": null, "linkedin": null, "links": {"conversations": "/crm/sales/sales_accounts/17001391875/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/sales_accounts/17001391875/document_associations", "notes": "/crm/sales/sales_accounts/17001391875/notes?include=creater", "tasks": "/crm/sales/sales_accounts/17001391875/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/sales_accounts/17001391875/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "custom_field": {}, "created_at": "2021-10-19T04:57:42-06:00", "updated_at": "2022-06-23T04:25:57-06:00", "avatar": null, "parent_sales_account_id": null, "recent_note": "activate 10/10/2021", "last_contacted_via_sales_activity": "2021-10-19T05:04:54-06:00", "last_contacted_sales_activity_mode": "Phone", "completed_sales_sequences": null, "active_sales_sequences": null, "last_assigned_at": "2021-10-19T04:57:43-06:00", "is_deleted": false, "team_user_ids": null, "web_form_ids": null, "tags": []}, "emitted_at": 1682419139167} -{"stream": "accounts", "data": {"id": 17004983219, "name": "Test Account 2", "address": null, "city": null, "state": null, "zipcode": null, "country": null, "number_of_employees": null, "annual_revenue": null, "website": null, "owner_id": 17000038922, "phone": null, "open_deals_amount": 0.0, "open_deals_count": 0, "won_deals_amount": 5000.0, "won_deals_count": 2, "last_contacted": null, "last_contacted_mode": null, "facebook": null, "twitter": null, "linkedin": null, "links": {"conversations": "/crm/sales/sales_accounts/17004983219/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/sales_accounts/17004983219/document_associations", "notes": "/crm/sales/sales_accounts/17004983219/notes?include=creater", "tasks": "/crm/sales/sales_accounts/17004983219/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/sales_accounts/17004983219/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "custom_field": {}, "created_at": "2023-03-23T05:14:37-06:00", "updated_at": "2023-03-23T05:25:59-06:00", "avatar": null, "parent_sales_account_id": null, "recent_note": null, "last_contacted_via_sales_activity": null, "last_contacted_sales_activity_mode": null, "completed_sales_sequences": null, "active_sales_sequences": null, "last_assigned_at": "2023-03-23T05:14:38-06:00", "is_deleted": false, "team_user_ids": null, "web_form_ids": null, "tags": []}, "emitted_at": 1682419139168} -{"stream": "accounts", "data": {"id": 17004983220, "name": "Test Account 3", "address": null, "city": null, "state": null, "zipcode": null, "country": null, "number_of_employees": null, "annual_revenue": null, "website": null, "owner_id": 17000038922, "phone": null, "open_deals_amount": 3200.0, "open_deals_count": 1, "won_deals_amount": 0.0, "won_deals_count": 0, "last_contacted": null, "last_contacted_mode": null, "facebook": null, "twitter": null, "linkedin": null, "links": {"conversations": "/crm/sales/sales_accounts/17004983220/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/sales_accounts/17004983220/document_associations", "notes": "/crm/sales/sales_accounts/17004983220/notes?include=creater", "tasks": "/crm/sales/sales_accounts/17004983220/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/sales_accounts/17004983220/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "custom_field": {}, "created_at": "2023-03-23T05:19:11-06:00", "updated_at": "2023-03-23T05:26:29-06:00", "avatar": null, "parent_sales_account_id": null, "recent_note": null, "last_contacted_via_sales_activity": null, "last_contacted_sales_activity_mode": null, "completed_sales_sequences": null, "active_sales_sequences": null, "last_assigned_at": "2023-03-23T05:19:12-06:00", "is_deleted": false, "team_user_ids": null, "web_form_ids": null, "tags": []}, "emitted_at": 1682419139169} -{"stream": "accounts", "data": {"id": 17004983221, "name": "Test Account 4", "address": null, "city": null, "state": null, "zipcode": null, "country": null, "number_of_employees": null, "annual_revenue": null, "website": null, "owner_id": 17000038922, "phone": null, "open_deals_amount": 8080.0, "open_deals_count": 2, "won_deals_amount": 0.0, "won_deals_count": 0, "last_contacted": null, "last_contacted_mode": null, "facebook": null, "twitter": null, "linkedin": null, "links": {"conversations": "/crm/sales/sales_accounts/17004983221/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/sales_accounts/17004983221/document_associations", "notes": "/crm/sales/sales_accounts/17004983221/notes?include=creater", "tasks": "/crm/sales/sales_accounts/17004983221/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/sales_accounts/17004983221/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "custom_field": {}, "created_at": "2023-03-23T05:19:46-06:00", "updated_at": "2023-03-23T05:26:56-06:00", "avatar": null, "parent_sales_account_id": null, "recent_note": null, "last_contacted_via_sales_activity": null, "last_contacted_sales_activity_mode": null, "completed_sales_sequences": null, "active_sales_sequences": null, "last_assigned_at": "2023-03-23T05:19:47-06:00", "is_deleted": false, "team_user_ids": null, "web_form_ids": null, "tags": []}, "emitted_at": 1682419139169} -{"stream": "accounts", "data": {"id": 17004983218, "name": "Test Account 1", "address": null, "city": null, "state": null, "zipcode": null, "country": null, "number_of_employees": null, "annual_revenue": null, "website": null, "owner_id": 17000038922, "phone": null, "open_deals_amount": 4500.0, "open_deals_count": 1, "won_deals_amount": 6000.0, "won_deals_count": 2, "last_contacted": null, "last_contacted_mode": null, "facebook": null, "twitter": null, "linkedin": null, "links": {"conversations": "/crm/sales/sales_accounts/17004983218/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/sales_accounts/17004983218/document_associations", "notes": "/crm/sales/sales_accounts/17004983218/notes?include=creater", "tasks": "/crm/sales/sales_accounts/17004983218/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/sales_accounts/17004983218/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "custom_field": {}, "created_at": "2023-03-23T05:13:41-06:00", "updated_at": "2023-03-23T05:31:35-06:00", "avatar": null, "parent_sales_account_id": null, "recent_note": null, "last_contacted_via_sales_activity": "2023-03-07T11:00:00-06:00", "last_contacted_sales_activity_mode": "Test chat", "completed_sales_sequences": null, "active_sales_sequences": null, "last_assigned_at": "2023-03-23T05:13:42-06:00", "is_deleted": false, "team_user_ids": null, "web_form_ids": null, "tags": []}, "emitted_at": 1682419139170} -{"stream": "open_deals", "data": {"id": 17000512184, "name": "Gold plan (sample)", "amount": 7000.0, "base_currency_amount": 7000.0, "expected_close": "2021-10-21", "closed_date": null, "stage_updated_time": "2021-10-13T10:06:38-06:00", "custom_field": {}, "probability": 100, "updated_at": "2021-10-14T10:06:38-06:00", "created_at": "2021-10-09T10:06:37-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237830, "age": 563, "links": {"conversations": "/crm/sales/deals/17000512184/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17000512184/document_associations", "notes": "/crm/sales/deals/17000512184/notes?include=creater", "tasks": "/crm/sales/deals/17000512184/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17000512184/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2021-10-09T10:06:37-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": 7000.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": 2, "deal_prediction": 0, "deal_prediction_last_updated_at": null, "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": 533, "tags": []}, "emitted_at": 1682419141504} -{"stream": "open_deals", "data": {"id": 17000521380, "name": "Discaunt", "amount": 25.0, "base_currency_amount": 25.0, "expected_close": null, "closed_date": null, "stage_updated_time": "2021-10-19T05:10:53-06:00", "custom_field": {}, "probability": 100, "updated_at": "2021-10-19T05:10:53-06:00", "created_at": "2021-10-19T05:04:09-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237831, "age": 553, "links": {"conversations": "/crm/sales/deals/17000521380/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17000521380/document_associations", "notes": "/crm/sales/deals/17000521380/notes?include=creater", "tasks": "/crm/sales/deals/17000521380/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17000521380/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2021-10-19T05:04:10-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": 25.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 0, "deal_prediction_last_updated_at": null, "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": 523, "tags": []}, "emitted_at": 1682419141505} -{"stream": "open_deals", "data": {"id": 17015628751, "name": "Test Open Deal 1", "amount": 4500.0, "base_currency_amount": 4500.0, "expected_close": null, "closed_date": null, "stage_updated_time": "2023-03-23T05:18:44-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:18:44-06:00", "created_at": "2023-03-23T05:18:44-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237830, "age": 33, "links": {"conversations": "/crm/sales/deals/17015628751/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628751/document_associations", "notes": "/crm/sales/deals/17015628751/notes?include=creater", "tasks": "/crm/sales/deals/17015628751/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628751/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:18:45-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": 4500.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 0, "deal_prediction_last_updated_at": null, "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": 3, "tags": []}, "emitted_at": 1682419141506} -{"stream": "open_deals", "data": {"id": 17015628806, "name": "Test Open Deal 2", "amount": 3200.0, "base_currency_amount": 3200.0, "expected_close": null, "closed_date": null, "stage_updated_time": "2023-03-23T05:19:22-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:19:22-06:00", "created_at": "2023-03-23T05:19:22-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237830, "age": 33, "links": {"conversations": "/crm/sales/deals/17015628806/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628806/document_associations", "notes": "/crm/sales/deals/17015628806/notes?include=creater", "tasks": "/crm/sales/deals/17015628806/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628806/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:19:23-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": 3200.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 0, "deal_prediction_last_updated_at": null, "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": 3, "tags": []}, "emitted_at": 1682419141507} -{"stream": "open_deals", "data": {"id": 17015628849, "name": "Test Open Deal 3", "amount": 1580.0, "base_currency_amount": 1580.0, "expected_close": null, "closed_date": null, "stage_updated_time": "2023-03-23T05:19:51-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:19:51-06:00", "created_at": "2023-03-23T05:19:51-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237830, "age": 33, "links": {"conversations": "/crm/sales/deals/17015628849/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628849/document_associations", "notes": "/crm/sales/deals/17015628849/notes?include=creater", "tasks": "/crm/sales/deals/17015628849/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628849/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:19:52-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": 1580.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 0, "deal_prediction_last_updated_at": null, "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": 3, "tags": []}, "emitted_at": 1682419141508} -{"stream": "open_deals", "data": {"id": 17015628886, "name": "Test Open Deal 4", "amount": 6500.0, "base_currency_amount": 6500.0, "expected_close": null, "closed_date": null, "stage_updated_time": "2023-03-23T05:20:17-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:20:17-06:00", "created_at": "2023-03-23T05:20:17-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237830, "age": 33, "links": {"conversations": "/crm/sales/deals/17015628886/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628886/document_associations", "notes": "/crm/sales/deals/17015628886/notes?include=creater", "tasks": "/crm/sales/deals/17015628886/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628886/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:20:18-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": 6500.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 0, "deal_prediction_last_updated_at": null, "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": 3, "tags": []}, "emitted_at": 1682419141509} -{"stream": "won_deals", "data": {"id": 17015628496, "name": "Test Won Deal 4", "amount": 5000.0, "base_currency_amount": 5000.0, "expected_close": null, "closed_date": "2023-03-23", "stage_updated_time": "2023-03-23T05:16:34-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:16:36-06:00", "created_at": "2023-03-23T05:15:44-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237835, "age": 0, "links": {"conversations": "/crm/sales/deals/17015628496/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628496/document_associations", "notes": "/crm/sales/deals/17015628496/notes?include=creater", "tasks": "/crm/sales/deals/17015628496/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628496/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:15:45-06:00", "last_contacted_sales_activity_mode": "Test chat", "last_contacted_via_sales_activity": "2023-03-07T11:00:00-06:00", "expected_deal_value": 5000.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 6, "deal_prediction_last_updated_at": "2023-03-23T05:16:34-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1682419143931} -{"stream": "won_deals", "data": {"id": 17015628427, "name": "Test Won Deal 2", "amount": 3000.0, "base_currency_amount": 3000.0, "expected_close": null, "closed_date": "2023-03-23", "stage_updated_time": "2023-03-23T05:17:00-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:17:00-06:00", "created_at": "2023-03-23T05:14:55-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237835, "age": 0, "links": {"conversations": "/crm/sales/deals/17015628427/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628427/document_associations", "notes": "/crm/sales/deals/17015628427/notes?include=creater", "tasks": "/crm/sales/deals/17015628427/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628427/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:14:56-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": 3000.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 6, "deal_prediction_last_updated_at": "2023-03-23T05:17:00-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1682419143932} -{"stream": "won_deals", "data": {"id": 17015628468, "name": "Test Won Deal 3", "amount": 2000.0, "base_currency_amount": 2000.0, "expected_close": null, "closed_date": "2023-03-23", "stage_updated_time": "2023-03-23T05:17:21-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:17:26-06:00", "created_at": "2023-03-23T05:15:23-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237835, "age": 0, "links": {"conversations": "/crm/sales/deals/17015628468/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628468/document_associations", "notes": "/crm/sales/deals/17015628468/notes?include=creater", "tasks": "/crm/sales/deals/17015628468/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628468/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:15:24-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": 2000.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 6, "deal_prediction_last_updated_at": "2023-03-23T05:17:21-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1682419143933} -{"stream": "won_deals", "data": {"id": 17015628368, "name": "Test Won Deal 1", "amount": 1000.0, "base_currency_amount": 1000.0, "expected_close": null, "closed_date": "2023-03-14", "stage_updated_time": "2023-03-23T05:17:48-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:17:50-06:00", "created_at": "2023-03-23T05:14:16-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237835, "age": -9, "links": {"conversations": "/crm/sales/deals/17015628368/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628368/document_associations", "notes": "/crm/sales/deals/17015628368/notes?include=creater", "tasks": "/crm/sales/deals/17015628368/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628368/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:14:17-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": 1000.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 6, "deal_prediction_last_updated_at": "2023-03-23T05:17:48-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1682419143934} -{"stream": "lost_deals", "data": {"id": 17015629024, "name": "Test Lost Deal 1", "amount": 800.0, "base_currency_amount": 800.0, "expected_close": null, "closed_date": "2023-03-17", "stage_updated_time": "2023-03-23T05:24:18-06:00", "custom_field": {}, "probability": 0, "updated_at": "2023-03-23T05:24:21-06:00", "created_at": "2023-03-23T05:21:53-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237836, "age": -6, "links": {"conversations": "/crm/sales/deals/17015629024/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015629024/document_associations", "notes": "/crm/sales/deals/17015629024/notes?include=creater", "tasks": "/crm/sales/deals/17015629024/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015629024/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:21:54-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": 0.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 7, "deal_prediction_last_updated_at": "2023-03-23T05:24:18-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1682419146221} -{"stream": "lost_deals", "data": {"id": 17015629056, "name": "Test Lost Deal 2", "amount": 2800.0, "base_currency_amount": 2800.0, "expected_close": null, "closed_date": "2023-03-22", "stage_updated_time": "2023-03-23T05:25:59-06:00", "custom_field": {}, "probability": 0, "updated_at": "2023-03-23T05:26:01-06:00", "created_at": "2023-03-23T05:22:14-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237836, "age": -1, "links": {"conversations": "/crm/sales/deals/17015629056/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015629056/document_associations", "notes": "/crm/sales/deals/17015629056/notes?include=creater", "tasks": "/crm/sales/deals/17015629056/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015629056/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:22:15-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": 0.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 7, "deal_prediction_last_updated_at": "2023-03-23T05:25:59-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1682419146222} -{"stream": "lost_deals", "data": {"id": 17015629086, "name": "Test Lost Deal 3", "amount": 3200.0, "base_currency_amount": 3200.0, "expected_close": null, "closed_date": "2023-03-09", "stage_updated_time": "2023-03-23T05:26:29-06:00", "custom_field": {}, "probability": 0, "updated_at": "2023-03-23T05:26:31-06:00", "created_at": "2023-03-23T05:22:33-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237836, "age": -14, "links": {"conversations": "/crm/sales/deals/17015629086/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015629086/document_associations", "notes": "/crm/sales/deals/17015629086/notes?include=creater", "tasks": "/crm/sales/deals/17015629086/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015629086/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:22:34-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": 0.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 7, "deal_prediction_last_updated_at": "2023-03-23T05:26:29-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1682419146223} -{"stream": "lost_deals", "data": {"id": 17015629190, "name": "Test Lost Deal 4", "amount": 895.0, "base_currency_amount": 895.0, "expected_close": null, "closed_date": "2023-03-05", "stage_updated_time": "2023-03-23T05:26:55-06:00", "custom_field": {}, "probability": 0, "updated_at": "2023-03-23T05:26:57-06:00", "created_at": "2023-03-23T05:23:44-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237836, "age": -18, "links": {"conversations": "/crm/sales/deals/17015629190/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015629190/document_associations", "notes": "/crm/sales/deals/17015629190/notes?include=creater", "tasks": "/crm/sales/deals/17015629190/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015629190/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:23:45-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": 0.0, "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 7, "deal_prediction_last_updated_at": "2023-03-23T05:26:55-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1682419146223} -{"stream": "open_tasks", "data": {"id": 17000410092, "status": "0", "title": "All reports for meeting", "description": "All reports for meeting", "created_at": "2021-10-19T00:31:18-06:00", "updated_at": "2021-10-19T00:31:18-06:00", "owner_id": 17000038922, "due_date": "2021-10-20T00:30:00-06:00", "completed_date": null, "creater_id": 17000038922, "updater_id": 17000038922, "outcome_id": 17001154298, "task_type_id": 17000098963, "targetables": "[]"}, "emitted_at": 1682419147728} -{"stream": "open_tasks", "data": {"id": 17000407414, "status": "0", "title": "(Sample) Send the pricing quote", "description": "Coordinate with Steve for the pricing quote and send it to James.", "created_at": "2021-10-14T04:41:18-06:00", "updated_at": "2021-10-18T04:41:18-06:00", "owner_id": 17000038922, "due_date": "2021-10-20T03:00:00-06:00", "completed_date": null, "creater_id": 17000038922, "updater_id": 17000038922, "outcome_id": null, "task_type_id": null, "targetables": "[{'id': 17008066468, 'type': 'Contact'}]"}, "emitted_at": 1682419147729} -{"stream": "open_tasks", "data": {"id": 17000411384, "status": "0", "title": "Meeting", "description": "Meeting with Zazmic", "created_at": "2021-10-19T05:05:54-06:00", "updated_at": "2021-10-19T05:05:54-06:00", "owner_id": 17000038922, "due_date": "2021-10-29T05:30:00-06:00", "completed_date": null, "creater_id": 17000038922, "updater_id": 17000038922, "outcome_id": 17001154298, "task_type_id": 17000098963, "targetables": "[{'id': 17001391875, 'type': 'SalesAccount'}]"}, "emitted_at": 1682419147729} -{"stream": "open_tasks", "data": {"id": 17000408204, "status": "0", "title": "Sample Task", "description": "This is just a sample task.", "created_at": "2021-10-18T09:53:02-06:00", "updated_at": "2021-10-18T09:53:02-06:00", "owner_id": 17000038922, "due_date": "2022-06-21T05:00:00-06:00", "completed_date": null, "creater_id": 17000038922, "updater_id": 17000038922, "outcome_id": null, "task_type_id": null, "targetables": "[{'id': 17008066468, 'type': 'Contact'}]"}, "emitted_at": 1682419147730} -{"stream": "completed_tasks", "data": {"id": 17000407413, "status": "1", "title": "(Sample) Send the proposal document", "description": "Send the proposal document and follow up with this contact after it.", "created_at": "2021-10-14T04:41:18-06:00", "updated_at": "2021-10-19T00:27:33-06:00", "owner_id": 17000038922, "due_date": "2021-10-19T02:00:00-06:00", "completed_date": "2021-10-19T00:27:33-06:00", "creater_id": 17000038922, "updater_id": 17000038922, "outcome_id": 17001154300, "task_type_id": null, "targetables": "[{'id': 17008066468, 'type': 'Contact'}]"}, "emitted_at": 1682419148806} -{"stream": "past_appointments", "data": {"id": 17000384293, "time_zone": "Chennai", "title": "Sample Appointment", "description": "This is just a sample Appointment.", "location": "Chennai, TN, India", "is_allday": "False", "outcome_id": null, "from_date": "2021-06-19T23:00:00-06:00", "end_date": "2022-06-20T00:00:00-06:00", "created_at": "2021-10-18T09:55:47-06:00", "updated_at": "2021-10-18T09:55:47-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": "[{'id': 17008066468, 'type': 'Contact'}]"}, "emitted_at": 1682419150369} -{"stream": "past_appointments", "data": {"id": 17000384297, "time_zone": "Chennai", "title": "Sample Appointment", "description": "This is just a sample Appointment.", "location": "Chennai, TN, India", "is_allday": "False", "outcome_id": null, "from_date": "2021-06-19T23:00:00-06:00", "end_date": "2022-06-20T00:00:00-06:00", "created_at": "2021-10-18T09:56:29-06:00", "updated_at": "2021-10-18T09:56:29-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": "[{'id': 17008066468, 'type': 'Contact'}]"}, "emitted_at": 1682419150370} -{"stream": "past_appointments", "data": {"id": 17000386736, "time_zone": "Central America", "title": "Daily meeting", "description": "Daily meeting", "location": "Zoom", "is_allday": "False", "outcome_id": null, "from_date": "2021-10-19T00:30:06-06:00", "end_date": "2022-01-19T08:30:00-06:00", "created_at": "2021-10-19T00:25:24-06:00", "updated_at": "2021-10-19T00:25:24-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": "[]"}, "emitted_at": 1682419150370} -{"stream": "past_appointments", "data": {"id": 17000386761, "time_zone": "Central America", "title": "Discount discussion", "description": null, "location": "Zoom", "is_allday": "False", "outcome_id": null, "from_date": "2021-10-21T00:45:00-06:00", "end_date": "2021-10-21T01:15:00-06:00", "created_at": "2021-10-19T00:45:49-06:00", "updated_at": "2021-10-19T00:45:49-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": "[]"}, "emitted_at": 1682419150371} -{"stream": "past_appointments", "data": {"id": 17000382511, "time_zone": "Arizona", "title": "(Sample) Meeting - final discussion about the deal", "description": "Meeting James to resolve any concerns and close the deal.", "location": "Hilton Hotel, Bucks Road", "is_allday": "False", "outcome_id": null, "from_date": "2021-10-20T10:00:00-06:00", "end_date": "2021-10-20T12:00:00-06:00", "created_at": "2021-10-18T04:41:18-06:00", "updated_at": "2021-10-16T04:41:18-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": "[{'id': 17008066468, 'type': 'Contact'}]"}, "emitted_at": 1682419150371} -{"stream": "past_appointments", "data": {"id": 17000384327, "time_zone": "Central America", "title": "New meeting", "description": "test meeting", "location": "zoom", "is_allday": "False", "outcome_id": null, "from_date": "2021-10-18T10:15:40-06:00", "end_date": "2021-10-18T10:45:40-06:00", "created_at": "2021-10-18T10:03:30-06:00", "updated_at": "2021-10-18T10:03:30-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": "[]"}, "emitted_at": 1682419150372} -{"stream": "upcoming_appointments", "data": {"id": 17000384327, "time_zone": "Central America", "title": "New meeting", "description": "test meeting", "location": "zoom", "is_allday": "False", "outcome_id": null, "from_date": "2021-10-18T10:15:40-06:00", "end_date": "2021-10-18T10:45:40-06:00", "created_at": "2021-10-18T10:03:30-06:00", "updated_at": "2021-10-18T10:03:30-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": "[]"}, "emitted_at": 1682419151716} -{"stream": "upcoming_appointments", "data": {"id": 17000382511, "time_zone": "Arizona", "title": "(Sample) Meeting - final discussion about the deal", "description": "Meeting James to resolve any concerns and close the deal.", "location": "Hilton Hotel, Bucks Road", "is_allday": "False", "outcome_id": null, "from_date": "2021-10-20T10:00:00-06:00", "end_date": "2021-10-20T12:00:00-06:00", "created_at": "2021-10-18T04:41:18-06:00", "updated_at": "2021-10-16T04:41:18-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": "[{'id': 17008066468, 'type': 'Contact'}]"}, "emitted_at": 1682419151717} -{"stream": "upcoming_appointments", "data": {"id": 17000386761, "time_zone": "Central America", "title": "Discount discussion", "description": null, "location": "Zoom", "is_allday": "False", "outcome_id": null, "from_date": "2021-10-21T00:45:00-06:00", "end_date": "2021-10-21T01:15:00-06:00", "created_at": "2021-10-19T00:45:49-06:00", "updated_at": "2021-10-19T00:45:49-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": "[]"}, "emitted_at": 1682419151718} -{"stream": "upcoming_appointments", "data": {"id": 17000386736, "time_zone": "Central America", "title": "Daily meeting", "description": "Daily meeting", "location": "Zoom", "is_allday": "False", "outcome_id": null, "from_date": "2021-10-19T00:30:06-06:00", "end_date": "2022-01-19T08:30:00-06:00", "created_at": "2021-10-19T00:25:24-06:00", "updated_at": "2021-10-19T00:25:24-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": "[]"}, "emitted_at": 1682419151719} -{"stream": "upcoming_appointments", "data": {"id": 17000384293, "time_zone": "Chennai", "title": "Sample Appointment", "description": "This is just a sample Appointment.", "location": "Chennai, TN, India", "is_allday": "False", "outcome_id": null, "from_date": "2021-06-19T23:00:00-06:00", "end_date": "2022-06-20T00:00:00-06:00", "created_at": "2021-10-18T09:55:47-06:00", "updated_at": "2021-10-18T09:55:47-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": "[{'id': 17008066468, 'type': 'Contact'}]"}, "emitted_at": 1682419151719} -{"stream": "upcoming_appointments", "data": {"id": 17000384297, "time_zone": "Chennai", "title": "Sample Appointment", "description": "This is just a sample Appointment.", "location": "Chennai, TN, India", "is_allday": "False", "outcome_id": null, "from_date": "2021-06-19T23:00:00-06:00", "end_date": "2022-06-20T00:00:00-06:00", "created_at": "2021-10-18T09:56:29-06:00", "updated_at": "2021-10-18T09:56:29-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": "[{'id': 17008066468, 'type': 'Contact'}]"}, "emitted_at": 1682419151720} +{"stream": "contacts", "data": {"id": 17008318589, "first_name": "Mail Delivery", "last_name": "Subsystem", "display_name": "Mail Delivery Subsystem", "avatar": null, "job_title": null, "city": null, "state": null, "zipcode": null, "country": null, "email": "mailer-daemon@googlemail.com", "emails": [{"id": 17007443529, "value": "mailer-daemon@googlemail.com", "is_primary": true, "label": null, "_destroy": false}], "time_zone": null, "work_number": null, "mobile_number": null, "address": null, "last_seen": null, "lead_score": 14, "last_contacted": null, "open_deals_amount": "7700.0", "won_deals_amount": "0.0", "links": {"conversations": "/crm/sales/contacts/17008318589/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "timeline_feeds": "/crm/sales/contacts/17008318589/timeline_feeds", "document_associations": "/crm/sales/contacts/17008318589/document_associations", "notes": "/crm/sales/contacts/17008318589/notes?include=creater", "tasks": "/crm/sales/contacts/17008318589/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/contacts/17008318589/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note", "reminders": "/crm/sales/contacts/17008318589/reminders?include=creater,owner,updater,targetable", "duplicates": "/crm/sales/contacts/17008318589/duplicates", "connections": "/crm/sales/contacts/17008318589/connections"}, "last_contacted_sales_activity_mode": null, "custom_field": {}, "created_at": "2021-10-19T00:28:18-06:00", "updated_at": "2023-03-23T05:19:22-06:00", "keyword": null, "medium": null, "last_contacted_mode": null, "recent_note": null, "won_deals_count": 0, "last_contacted_via_sales_activity": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_ids": null, "open_deals_count": 2, "last_assigned_at": "2021-10-19T00:28:19-06:00", "facebook": null, "twitter": null, "linkedin": null, "is_deleted": false, "team_user_ids": null, "external_id": null, "work_email": null, "subscription_status": 1, "subscription_types": "1;2;3;4;5", "unsubscription_reason": null, "other_unsubscription_reason": null, "customer_fit": 1, "whatsapp_subscription_status": 2, "sms_subscription_status": 2, "last_seen_chat": null, "first_seen_chat": null, "locale": null, "total_sessions": null, "system_tags": [], "first_campaign": null, "first_medium": null, "first_source": null, "last_campaign": null, "last_medium": null, "last_source": null, "latest_campaign": null, "latest_medium": null, "latest_source": null, "mcr_id": 1450348061427834880, "phone_numbers": [], "tags": []}, "emitted_at": 1699903253739} +{"stream": "contacts", "data": {"id": 17008066468, "first_name": "Jane", "last_name": "Sampleton (sample)", "display_name": "Jane Sampleton (sample)", "avatar": "https://img.fullcontact.com/static/4df0efb1ea1a7650fef74f5e44d50d35_ca437b79617f8bbfc40c317b729d32693be1463f356b5be1015b39739859659f", "job_title": "Sales Manager", "city": "Glendale", "state": "Arizona", "zipcode": "100652", "country": "USA", "email": "janesampleton@gmail.com", "emails": [{"id": 17007194356, "value": "janesampleton@gmail.com", "is_primary": true, "label": null, "_destroy": false}], "time_zone": "Arizona", "work_number": "3684932360", "mobile_number": "19266529503", "address": "604-5854 Beckford St.", "last_seen": null, "lead_score": 33, "last_contacted": "2021-10-12T10:06:38-06:00", "open_deals_amount": "22780.0", "won_deals_amount": "11000.0", "links": {"conversations": "/crm/sales/contacts/17008066468/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "timeline_feeds": "/crm/sales/contacts/17008066468/timeline_feeds", "document_associations": "/crm/sales/contacts/17008066468/document_associations", "notes": "/crm/sales/contacts/17008066468/notes?include=creater", "tasks": "/crm/sales/contacts/17008066468/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/contacts/17008066468/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note", "reminders": "/crm/sales/contacts/17008066468/reminders?include=creater,owner,updater,targetable", "duplicates": "/crm/sales/contacts/17008066468/duplicates", "connections": "/crm/sales/contacts/17008066468/connections"}, "last_contacted_sales_activity_mode": "Task", "custom_field": {}, "created_at": "2021-10-07T10:06:37-06:00", "updated_at": "2023-09-08T23:42:26-06:00", "keyword": "B2B Success", "medium": "Blog", "last_contacted_mode": "Email opened by recipient", "recent_note": "Sample note for contact create", "won_deals_count": 4, "last_contacted_via_sales_activity": "2021-10-19T00:27:33-06:00", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_ids": null, "open_deals_count": 5, "last_assigned_at": "2022-09-05T04:44:49-06:00", "facebook": "100010587455650", "twitter": "janesampleton", "linkedin": "jane-sampleton-0b0039109", "is_deleted": false, "team_user_ids": null, "external_id": null, "work_email": null, "subscription_status": 1, "subscription_types": "1;2;3;4;5", "unsubscription_reason": null, "other_unsubscription_reason": null, "customer_fit": 2, "whatsapp_subscription_status": 2, "sms_subscription_status": 2, "last_seen_chat": null, "first_seen_chat": null, "locale": null, "total_sessions": null, "system_tags": [], "first_campaign": null, "first_medium": null, "first_source": null, "last_campaign": null, "last_medium": null, "last_source": null, "latest_campaign": null, "latest_medium": null, "latest_source": null, "mcr_id": 1450049339590340608, "phone_numbers": [], "tags": []}, "emitted_at": 1699903253746} +{"stream": "accounts", "data": {"id": 17001321830, "name": "Widgetz.io (sample)", "address": "160-6802 Aliquet Rd.", "city": "New Haven", "state": "Connecticut", "zipcode": "68089", "country": "United States", "number_of_employees": null, "annual_revenue": 0, "website": "widgetz.io", "owner_id": null, "phone": "5036153947", "open_deals_amount": "0.0", "open_deals_count": 0, "won_deals_amount": "0.0", "won_deals_count": 0, "last_contacted": "2021-10-12T10:06:38-06:00", "last_contacted_mode": "Email opened by recipient", "facebook": null, "twitter": null, "linkedin": null, "links": {"conversations": "/crm/sales/sales_accounts/17001321830/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/sales_accounts/17001321830/document_associations", "notes": "/crm/sales/sales_accounts/17001321830/notes?include=creater", "tasks": "/crm/sales/sales_accounts/17001321830/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/sales_accounts/17001321830/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "custom_field": {}, "created_at": "2021-10-18T04:41:17-06:00", "updated_at": "2022-06-23T04:25:57-06:00", "avatar": null, "parent_sales_account_id": null, "recent_note": null, "last_contacted_via_sales_activity": "2021-10-19T00:27:33-06:00", "last_contacted_sales_activity_mode": "Task", "completed_sales_sequences": null, "active_sales_sequences": null, "last_assigned_at": "2021-10-18T09:56:31-06:00", "is_deleted": false, "team_user_ids": null, "web_form_ids": null, "tags": []}, "emitted_at": 1699903255739} +{"stream": "accounts", "data": {"id": 17001391875, "name": "Airbyte", "address": "San Francisco, CA", "city": null, "state": null, "zipcode": "94121", "country": null, "number_of_employees": 1, "annual_revenue": null, "website": null, "owner_id": 17000038922, "phone": "+1234567890", "open_deals_amount": "25.0", "open_deals_count": 1, "won_deals_amount": "0.0", "won_deals_count": 0, "last_contacted": "2021-10-19T05:04:54-06:00", "last_contacted_mode": "Outgoing call", "facebook": null, "twitter": null, "linkedin": null, "links": {"conversations": "/crm/sales/sales_accounts/17001391875/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/sales_accounts/17001391875/document_associations", "notes": "/crm/sales/sales_accounts/17001391875/notes?include=creater", "tasks": "/crm/sales/sales_accounts/17001391875/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/sales_accounts/17001391875/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "custom_field": {}, "created_at": "2021-10-19T04:57:42-06:00", "updated_at": "2022-06-23T04:25:57-06:00", "avatar": null, "parent_sales_account_id": null, "recent_note": "activate 10/10/2021", "last_contacted_via_sales_activity": "2021-10-19T05:04:54-06:00", "last_contacted_sales_activity_mode": "Phone", "completed_sales_sequences": null, "active_sales_sequences": null, "last_assigned_at": "2021-10-19T04:57:43-06:00", "is_deleted": false, "team_user_ids": null, "web_form_ids": null, "tags": []}, "emitted_at": 1699903255745} +{"stream": "accounts", "data": {"id": 17004983219, "name": "Test Account 2", "address": null, "city": null, "state": null, "zipcode": null, "country": null, "number_of_employees": null, "annual_revenue": null, "website": null, "owner_id": 17000038922, "phone": null, "open_deals_amount": "0.0", "open_deals_count": 0, "won_deals_amount": "5000.0", "won_deals_count": 2, "last_contacted": null, "last_contacted_mode": null, "facebook": null, "twitter": null, "linkedin": null, "links": {"conversations": "/crm/sales/sales_accounts/17004983219/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/sales_accounts/17004983219/document_associations", "notes": "/crm/sales/sales_accounts/17004983219/notes?include=creater", "tasks": "/crm/sales/sales_accounts/17004983219/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/sales_accounts/17004983219/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "custom_field": {}, "created_at": "2023-03-23T05:14:37-06:00", "updated_at": "2023-03-23T05:25:59-06:00", "avatar": null, "parent_sales_account_id": null, "recent_note": null, "last_contacted_via_sales_activity": null, "last_contacted_sales_activity_mode": null, "completed_sales_sequences": null, "active_sales_sequences": null, "last_assigned_at": "2023-03-23T05:14:38-06:00", "is_deleted": false, "team_user_ids": null, "web_form_ids": null, "tags": []}, "emitted_at": 1699903255751} +{"stream": "accounts", "data": {"id": 17004983220, "name": "Test Account 3", "address": null, "city": null, "state": null, "zipcode": null, "country": null, "number_of_employees": null, "annual_revenue": null, "website": null, "owner_id": 17000038922, "phone": null, "open_deals_amount": "3200.0", "open_deals_count": 1, "won_deals_amount": "0.0", "won_deals_count": 0, "last_contacted": null, "last_contacted_mode": null, "facebook": null, "twitter": null, "linkedin": null, "links": {"conversations": "/crm/sales/sales_accounts/17004983220/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/sales_accounts/17004983220/document_associations", "notes": "/crm/sales/sales_accounts/17004983220/notes?include=creater", "tasks": "/crm/sales/sales_accounts/17004983220/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/sales_accounts/17004983220/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "custom_field": {}, "created_at": "2023-03-23T05:19:11-06:00", "updated_at": "2023-03-23T05:26:29-06:00", "avatar": null, "parent_sales_account_id": null, "recent_note": null, "last_contacted_via_sales_activity": null, "last_contacted_sales_activity_mode": null, "completed_sales_sequences": null, "active_sales_sequences": null, "last_assigned_at": "2023-03-23T05:19:12-06:00", "is_deleted": false, "team_user_ids": null, "web_form_ids": null, "tags": []}, "emitted_at": 1699903255756} +{"stream": "accounts", "data": {"id": 17004983221, "name": "Test Account 4", "address": null, "city": null, "state": null, "zipcode": null, "country": null, "number_of_employees": null, "annual_revenue": null, "website": null, "owner_id": 17000038922, "phone": null, "open_deals_amount": "8080.0", "open_deals_count": 2, "won_deals_amount": "0.0", "won_deals_count": 0, "last_contacted": null, "last_contacted_mode": null, "facebook": null, "twitter": null, "linkedin": null, "links": {"conversations": "/crm/sales/sales_accounts/17004983221/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/sales_accounts/17004983221/document_associations", "notes": "/crm/sales/sales_accounts/17004983221/notes?include=creater", "tasks": "/crm/sales/sales_accounts/17004983221/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/sales_accounts/17004983221/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "custom_field": {}, "created_at": "2023-03-23T05:19:46-06:00", "updated_at": "2023-03-23T05:26:56-06:00", "avatar": null, "parent_sales_account_id": null, "recent_note": null, "last_contacted_via_sales_activity": null, "last_contacted_sales_activity_mode": null, "completed_sales_sequences": null, "active_sales_sequences": null, "last_assigned_at": "2023-03-23T05:19:47-06:00", "is_deleted": false, "team_user_ids": null, "web_form_ids": null, "tags": []}, "emitted_at": 1699903255762} +{"stream": "accounts", "data": {"id": 17004983218, "name": "Test Account 1", "address": null, "city": null, "state": null, "zipcode": null, "country": null, "number_of_employees": null, "annual_revenue": null, "website": null, "owner_id": 17000038922, "phone": null, "open_deals_amount": "4500.0", "open_deals_count": 1, "won_deals_amount": "6000.0", "won_deals_count": 2, "last_contacted": null, "last_contacted_mode": null, "facebook": null, "twitter": null, "linkedin": null, "links": {"conversations": "/crm/sales/sales_accounts/17004983218/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/sales_accounts/17004983218/document_associations", "notes": "/crm/sales/sales_accounts/17004983218/notes?include=creater", "tasks": "/crm/sales/sales_accounts/17004983218/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/sales_accounts/17004983218/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "custom_field": {}, "created_at": "2023-03-23T05:13:41-06:00", "updated_at": "2023-03-23T05:31:35-06:00", "avatar": null, "parent_sales_account_id": null, "recent_note": null, "last_contacted_via_sales_activity": "2023-03-07T11:00:00-06:00", "last_contacted_sales_activity_mode": "Test chat", "completed_sales_sequences": null, "active_sales_sequences": null, "last_assigned_at": "2023-03-23T05:13:42-06:00", "is_deleted": false, "team_user_ids": null, "web_form_ids": null, "tags": []}, "emitted_at": 1699903255768} +{"stream": "open_deals", "data": {"id": 17000512184, "name": "Gold plan (sample)", "amount": "7000.0", "base_currency_amount": "7000.0", "expected_close": "2021-10-21", "closed_date": null, "stage_updated_time": "2021-10-13T10:06:38-06:00", "custom_field": {}, "probability": 100, "updated_at": "2021-10-14T10:06:38-06:00", "created_at": "2021-10-09T10:06:37-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237830, "age": 765, "links": {"conversations": "/crm/sales/deals/17000512184/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17000512184/document_associations", "notes": "/crm/sales/deals/17000512184/notes?include=creater", "tasks": "/crm/sales/deals/17000512184/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17000512184/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2021-10-09T10:06:37-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": "7000.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": 2, "deal_prediction": 0, "deal_prediction_last_updated_at": null, "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": 735, "tags": []}, "emitted_at": 1699903257648} +{"stream": "open_deals", "data": {"id": 17000521380, "name": "Discaunt", "amount": "25.0", "base_currency_amount": "25.0", "expected_close": null, "closed_date": null, "stage_updated_time": "2021-10-19T05:10:53-06:00", "custom_field": {}, "probability": 100, "updated_at": "2021-10-19T05:10:53-06:00", "created_at": "2021-10-19T05:04:09-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237831, "age": 755, "links": {"conversations": "/crm/sales/deals/17000521380/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17000521380/document_associations", "notes": "/crm/sales/deals/17000521380/notes?include=creater", "tasks": "/crm/sales/deals/17000521380/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17000521380/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2021-10-19T05:04:10-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": "25.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 0, "deal_prediction_last_updated_at": null, "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": 725, "tags": []}, "emitted_at": 1699903257653} +{"stream": "open_deals", "data": {"id": 17015628751, "name": "Test Open Deal 1", "amount": "4500.0", "base_currency_amount": "4500.0", "expected_close": null, "closed_date": null, "stage_updated_time": "2023-03-23T05:18:44-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:18:44-06:00", "created_at": "2023-03-23T05:18:44-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237830, "age": 235, "links": {"conversations": "/crm/sales/deals/17015628751/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628751/document_associations", "notes": "/crm/sales/deals/17015628751/notes?include=creater", "tasks": "/crm/sales/deals/17015628751/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628751/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:18:45-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": "4500.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 0, "deal_prediction_last_updated_at": null, "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": 205, "tags": []}, "emitted_at": 1699903257657} +{"stream": "open_deals", "data": {"id": 17015628806, "name": "Test Open Deal 2", "amount": "3200.0", "base_currency_amount": "3200.0", "expected_close": null, "closed_date": null, "stage_updated_time": "2023-03-23T05:19:22-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:19:22-06:00", "created_at": "2023-03-23T05:19:22-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237830, "age": 235, "links": {"conversations": "/crm/sales/deals/17015628806/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628806/document_associations", "notes": "/crm/sales/deals/17015628806/notes?include=creater", "tasks": "/crm/sales/deals/17015628806/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628806/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:19:23-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": "3200.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 0, "deal_prediction_last_updated_at": null, "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": 205, "tags": []}, "emitted_at": 1699903257661} +{"stream": "open_deals", "data": {"id": 17015628849, "name": "Test Open Deal 3", "amount": "1580.0", "base_currency_amount": "1580.0", "expected_close": null, "closed_date": null, "stage_updated_time": "2023-03-23T05:19:51-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:19:51-06:00", "created_at": "2023-03-23T05:19:51-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237830, "age": 235, "links": {"conversations": "/crm/sales/deals/17015628849/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628849/document_associations", "notes": "/crm/sales/deals/17015628849/notes?include=creater", "tasks": "/crm/sales/deals/17015628849/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628849/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:19:52-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": "1580.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 0, "deal_prediction_last_updated_at": null, "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": 205, "tags": []}, "emitted_at": 1699903257666} +{"stream": "open_deals", "data": {"id": 17015628886, "name": "Test Open Deal 4", "amount": "6500.0", "base_currency_amount": "6500.0", "expected_close": null, "closed_date": null, "stage_updated_time": "2023-03-23T05:20:17-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:20:17-06:00", "created_at": "2023-03-23T05:20:17-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237830, "age": 235, "links": {"conversations": "/crm/sales/deals/17015628886/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628886/document_associations", "notes": "/crm/sales/deals/17015628886/notes?include=creater", "tasks": "/crm/sales/deals/17015628886/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628886/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": null, "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:20:18-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": "6500.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 0, "deal_prediction_last_updated_at": null, "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": 205, "tags": []}, "emitted_at": 1699903257670} +{"stream": "won_deals", "data": {"id": 17015628496, "name": "Test Won Deal 4", "amount": "5000.0", "base_currency_amount": "5000.0", "expected_close": null, "closed_date": "2023-03-23", "stage_updated_time": "2023-03-23T05:16:34-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:16:36-06:00", "created_at": "2023-03-23T05:15:44-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237835, "age": 0, "links": {"conversations": "/crm/sales/deals/17015628496/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628496/document_associations", "notes": "/crm/sales/deals/17015628496/notes?include=creater", "tasks": "/crm/sales/deals/17015628496/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628496/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:15:45-06:00", "last_contacted_sales_activity_mode": "Test chat", "last_contacted_via_sales_activity": "2023-03-07T11:00:00-06:00", "expected_deal_value": "5000.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 6, "deal_prediction_last_updated_at": "2023-03-23T05:16:34-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1699903259466} +{"stream": "won_deals", "data": {"id": 17015628427, "name": "Test Won Deal 2", "amount": "3000.0", "base_currency_amount": "3000.0", "expected_close": null, "closed_date": "2023-03-23", "stage_updated_time": "2023-03-23T05:17:00-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:17:00-06:00", "created_at": "2023-03-23T05:14:55-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237835, "age": 0, "links": {"conversations": "/crm/sales/deals/17015628427/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628427/document_associations", "notes": "/crm/sales/deals/17015628427/notes?include=creater", "tasks": "/crm/sales/deals/17015628427/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628427/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:14:56-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": "3000.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 6, "deal_prediction_last_updated_at": "2023-03-23T05:17:00-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1699903259472} +{"stream": "won_deals", "data": {"id": 17015628468, "name": "Test Won Deal 3", "amount": "2000.0", "base_currency_amount": "2000.0", "expected_close": null, "closed_date": "2023-03-23", "stage_updated_time": "2023-03-23T05:17:21-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:17:26-06:00", "created_at": "2023-03-23T05:15:23-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237835, "age": 0, "links": {"conversations": "/crm/sales/deals/17015628468/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628468/document_associations", "notes": "/crm/sales/deals/17015628468/notes?include=creater", "tasks": "/crm/sales/deals/17015628468/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628468/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:15:24-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": "2000.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 6, "deal_prediction_last_updated_at": "2023-03-23T05:17:21-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1699903259480} +{"stream": "won_deals", "data": {"id": 17015628368, "name": "Test Won Deal 1", "amount": "1000.0", "base_currency_amount": "1000.0", "expected_close": null, "closed_date": "2023-03-14", "stage_updated_time": "2023-03-23T05:17:48-06:00", "custom_field": {}, "probability": 100, "updated_at": "2023-03-23T05:17:50-06:00", "created_at": "2023-03-23T05:14:16-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237835, "age": -9, "links": {"conversations": "/crm/sales/deals/17015628368/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015628368/document_associations", "notes": "/crm/sales/deals/17015628368/notes?include=creater", "tasks": "/crm/sales/deals/17015628368/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015628368/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:14:17-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": "1000.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 6, "deal_prediction_last_updated_at": "2023-03-23T05:17:48-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1699903259485} +{"stream": "lost_deals", "data": {"id": 17015629024, "name": "Test Lost Deal 1", "amount": "800.0", "base_currency_amount": "800.0", "expected_close": null, "closed_date": "2023-03-17", "stage_updated_time": "2023-03-23T05:24:18-06:00", "custom_field": {}, "probability": 0, "updated_at": "2023-03-23T05:24:21-06:00", "created_at": "2023-03-23T05:21:53-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237836, "age": -6, "links": {"conversations": "/crm/sales/deals/17015629024/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015629024/document_associations", "notes": "/crm/sales/deals/17015629024/notes?include=creater", "tasks": "/crm/sales/deals/17015629024/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015629024/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:21:54-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": "0.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 7, "deal_prediction_last_updated_at": "2023-03-23T05:24:18-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1699903261406} +{"stream": "lost_deals", "data": {"id": 17015629056, "name": "Test Lost Deal 2", "amount": "2800.0", "base_currency_amount": "2800.0", "expected_close": null, "closed_date": "2023-03-22", "stage_updated_time": "2023-03-23T05:25:59-06:00", "custom_field": {}, "probability": 0, "updated_at": "2023-03-23T05:26:01-06:00", "created_at": "2023-03-23T05:22:14-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237836, "age": -1, "links": {"conversations": "/crm/sales/deals/17015629056/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015629056/document_associations", "notes": "/crm/sales/deals/17015629056/notes?include=creater", "tasks": "/crm/sales/deals/17015629056/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015629056/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:22:15-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": "0.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 7, "deal_prediction_last_updated_at": "2023-03-23T05:25:59-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1699903261411} +{"stream": "lost_deals", "data": {"id": 17015629086, "name": "Test Lost Deal 3", "amount": "3200.0", "base_currency_amount": "3200.0", "expected_close": null, "closed_date": "2023-03-09", "stage_updated_time": "2023-03-23T05:26:29-06:00", "custom_field": {}, "probability": 0, "updated_at": "2023-03-23T05:26:31-06:00", "created_at": "2023-03-23T05:22:33-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237836, "age": -14, "links": {"conversations": "/crm/sales/deals/17015629086/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015629086/document_associations", "notes": "/crm/sales/deals/17015629086/notes?include=creater", "tasks": "/crm/sales/deals/17015629086/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015629086/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:22:34-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": "0.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 7, "deal_prediction_last_updated_at": "2023-03-23T05:26:29-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1699903261416} +{"stream": "lost_deals", "data": {"id": 17015629190, "name": "Test Lost Deal 4", "amount": "895.0", "base_currency_amount": "895.0", "expected_close": null, "closed_date": "2023-03-05", "stage_updated_time": "2023-03-23T05:26:55-06:00", "custom_field": {}, "probability": 0, "updated_at": "2023-03-23T05:26:57-06:00", "created_at": "2023-03-23T05:23:44-06:00", "deal_pipeline_id": 17000033935, "deal_stage_id": 17000237836, "age": -18, "links": {"conversations": "/crm/sales/deals/17015629190/conversations/all?include=email_conversation_recipients%2Ctargetable%2Cphone_number%2Cphone_caller%2Cnote%2Cuser&per_page=3", "document_associations": "/crm/sales/deals/17015629190/document_associations", "notes": "/crm/sales/deals/17015629190/notes?include=creater", "tasks": "/crm/sales/deals/17015629190/tasks?include=creater,owner,updater,targetable,users,task_type", "appointments": "/crm/sales/deals/17015629190/appointments?include=creater,owner,updater,targetable,appointment_attendees,conference,note"}, "recent_note": "Test notes", "completed_sales_sequences": null, "active_sales_sequences": null, "web_form_id": null, "upcoming_activities_time": null, "collaboration": {}, "last_assigned_at": "2023-03-23T05:23:45-06:00", "last_contacted_sales_activity_mode": null, "last_contacted_via_sales_activity": null, "expected_deal_value": "0.0", "is_deleted": false, "team_user_ids": null, "avatar": null, "forecast_category": null, "deal_prediction": 7, "deal_prediction_last_updated_at": "2023-03-23T05:26:55-06:00", "freddy_forecast_metrics": null, "last_deal_prediction": null, "rotten_days": null, "tags": []}, "emitted_at": 1699903261420} +{"stream": "open_tasks", "data": {"id": 17000410092, "status": 0, "title": "All reports for meeting", "description": "All reports for meeting", "created_at": "2021-10-19T00:31:18-06:00", "updated_at": "2021-10-19T00:31:18-06:00", "owner_id": 17000038922, "due_date": "2021-10-20T00:30:00-06:00", "completed_date": null, "creater_id": 17000038922, "updater_id": 17000038922, "outcome_id": 17001154298, "task_type_id": 17000098963, "targetables": []}, "emitted_at": 1699903262254} +{"stream": "open_tasks", "data": {"id": 17000407414, "status": 0, "title": "(Sample) Send the pricing quote", "description": "Coordinate with Steve for the pricing quote and send it to James.", "created_at": "2021-10-14T04:41:18-06:00", "updated_at": "2021-10-18T04:41:18-06:00", "owner_id": 17000038922, "due_date": "2021-10-20T03:00:00-06:00", "completed_date": null, "creater_id": 17000038922, "updater_id": 17000038922, "outcome_id": null, "task_type_id": null, "targetables": [{"id": 17008066468, "type": "Contact"}]}, "emitted_at": 1699903262258} +{"stream": "open_tasks", "data": {"id": 17000411384, "status": 0, "title": "Meeting", "description": "Meeting with Zazmic", "created_at": "2021-10-19T05:05:54-06:00", "updated_at": "2021-10-19T05:05:54-06:00", "owner_id": 17000038922, "due_date": "2021-10-29T05:30:00-06:00", "completed_date": null, "creater_id": 17000038922, "updater_id": 17000038922, "outcome_id": 17001154298, "task_type_id": 17000098963, "targetables": [{"id": 17001391875, "type": "SalesAccount"}]}, "emitted_at": 1699903262261} +{"stream": "open_tasks", "data": {"id": 17000408204, "status": 0, "title": "Sample Task", "description": "This is just a sample task.", "created_at": "2021-10-18T09:53:02-06:00", "updated_at": "2021-10-18T09:53:02-06:00", "owner_id": 17000038922, "due_date": "2022-06-21T05:00:00-06:00", "completed_date": null, "creater_id": 17000038922, "updater_id": 17000038922, "outcome_id": null, "task_type_id": null, "targetables": [{"id": 17008066468, "type": "Contact"}]}, "emitted_at": 1699903262265} +{"stream": "completed_tasks", "data": {"id": 17000407413, "status": 1, "title": "(Sample) Send the proposal document", "description": "Send the proposal document and follow up with this contact after it.", "created_at": "2021-10-14T04:41:18-06:00", "updated_at": "2021-10-19T00:27:33-06:00", "owner_id": 17000038922, "due_date": "2021-10-19T02:00:00-06:00", "completed_date": "2021-10-19T00:27:33-06:00", "creater_id": 17000038922, "updater_id": 17000038922, "outcome_id": 17001154300, "task_type_id": null, "targetables": [{"id": 17008066468, "type": "Contact"}]}, "emitted_at": 1699903263068} +{"stream": "past_appointments", "data": {"id": 17000384293, "time_zone": "Chennai", "title": "Sample Appointment", "description": "This is just a sample Appointment.", "location": "Chennai, TN, India", "is_allday": false, "outcome_id": null, "from_date": "2021-06-19T23:00:00-06:00", "end_date": "2022-06-20T00:00:00-06:00", "created_at": "2021-10-18T09:55:47-06:00", "updated_at": "2021-10-18T09:55:47-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": [{"id": 17008066468, "type": "Contact"}]}, "emitted_at": 1699903264022} +{"stream": "past_appointments", "data": {"id": 17000384297, "time_zone": "Chennai", "title": "Sample Appointment", "description": "This is just a sample Appointment.", "location": "Chennai, TN, India", "is_allday": false, "outcome_id": null, "from_date": "2021-06-19T23:00:00-06:00", "end_date": "2022-06-20T00:00:00-06:00", "created_at": "2021-10-18T09:56:29-06:00", "updated_at": "2021-10-18T09:56:29-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": [{"id": 17008066468, "type": "Contact"}]}, "emitted_at": 1699903264028} +{"stream": "past_appointments", "data": {"id": 17000386736, "time_zone": "Central America", "title": "Daily meeting", "description": "Daily meeting", "location": "Zoom", "is_allday": false, "outcome_id": null, "from_date": "2021-10-19T00:30:06-06:00", "end_date": "2022-01-19T08:30:00-06:00", "created_at": "2021-10-19T00:25:24-06:00", "updated_at": "2021-10-19T00:25:24-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": []}, "emitted_at": 1699903264032} +{"stream": "past_appointments", "data": {"id": 17000386761, "time_zone": "Central America", "title": "Discount discussion", "description": null, "location": "Zoom", "is_allday": false, "outcome_id": null, "from_date": "2021-10-21T00:45:00-06:00", "end_date": "2021-10-21T01:15:00-06:00", "created_at": "2021-10-19T00:45:49-06:00", "updated_at": "2021-10-19T00:45:49-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": []}, "emitted_at": 1699903264037} +{"stream": "past_appointments", "data": {"id": 17000382511, "time_zone": "Arizona", "title": "(Sample) Meeting - final discussion about the deal", "description": "Meeting James to resolve any concerns and close the deal.", "location": "Hilton Hotel, Bucks Road", "is_allday": false, "outcome_id": null, "from_date": "2021-10-20T10:00:00-06:00", "end_date": "2021-10-20T12:00:00-06:00", "created_at": "2021-10-18T04:41:18-06:00", "updated_at": "2021-10-16T04:41:18-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": [{"id": 17008066468, "type": "Contact"}]}, "emitted_at": 1699903264043} +{"stream": "past_appointments", "data": {"id": 17000384327, "time_zone": "Central America", "title": "New meeting", "description": "test meeting", "location": "zoom", "is_allday": false, "outcome_id": null, "from_date": "2021-10-18T10:15:40-06:00", "end_date": "2021-10-18T10:45:40-06:00", "created_at": "2021-10-18T10:03:30-06:00", "updated_at": "2021-10-18T10:03:30-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": []}, "emitted_at": 1699903264047} +{"stream": "upcoming_appointments", "data": {"id": 17000384327, "time_zone": "Central America", "title": "New meeting", "description": "test meeting", "location": "zoom", "is_allday": false, "outcome_id": null, "from_date": "2021-10-18T10:15:40-06:00", "end_date": "2021-10-18T10:45:40-06:00", "created_at": "2021-10-18T10:03:30-06:00", "updated_at": "2021-10-18T10:03:30-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": []}, "emitted_at": 1699903265232} +{"stream": "upcoming_appointments", "data": {"id": 17000382511, "time_zone": "Arizona", "title": "(Sample) Meeting - final discussion about the deal", "description": "Meeting James to resolve any concerns and close the deal.", "location": "Hilton Hotel, Bucks Road", "is_allday": false, "outcome_id": null, "from_date": "2021-10-20T10:00:00-06:00", "end_date": "2021-10-20T12:00:00-06:00", "created_at": "2021-10-18T04:41:18-06:00", "updated_at": "2021-10-16T04:41:18-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": [{"id": 17008066468, "type": "Contact"}]}, "emitted_at": 1699903265239} +{"stream": "upcoming_appointments", "data": {"id": 17000386761, "time_zone": "Central America", "title": "Discount discussion", "description": null, "location": "Zoom", "is_allday": false, "outcome_id": null, "from_date": "2021-10-21T00:45:00-06:00", "end_date": "2021-10-21T01:15:00-06:00", "created_at": "2021-10-19T00:45:49-06:00", "updated_at": "2021-10-19T00:45:49-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": []}, "emitted_at": 1699903265243} +{"stream": "upcoming_appointments", "data": {"id": 17000386736, "time_zone": "Central America", "title": "Daily meeting", "description": "Daily meeting", "location": "Zoom", "is_allday": false, "outcome_id": null, "from_date": "2021-10-19T00:30:06-06:00", "end_date": "2022-01-19T08:30:00-06:00", "created_at": "2021-10-19T00:25:24-06:00", "updated_at": "2021-10-19T00:25:24-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": []}, "emitted_at": 1699903265249} +{"stream": "upcoming_appointments", "data": {"id": 17000384293, "time_zone": "Chennai", "title": "Sample Appointment", "description": "This is just a sample Appointment.", "location": "Chennai, TN, India", "is_allday": false, "outcome_id": null, "from_date": "2021-06-19T23:00:00-06:00", "end_date": "2022-06-20T00:00:00-06:00", "created_at": "2021-10-18T09:55:47-06:00", "updated_at": "2021-10-18T09:55:47-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": [{"id": 17008066468, "type": "Contact"}]}, "emitted_at": 1699903265253} +{"stream": "upcoming_appointments", "data": {"id": 17000384297, "time_zone": "Chennai", "title": "Sample Appointment", "description": "This is just a sample Appointment.", "location": "Chennai, TN, India", "is_allday": false, "outcome_id": null, "from_date": "2021-06-19T23:00:00-06:00", "end_date": "2022-06-20T00:00:00-06:00", "created_at": "2021-10-18T09:56:29-06:00", "updated_at": "2021-10-18T09:56:29-06:00", "provider": "freshsales", "creater_id": 17000038922, "latitude": null, "longitude": null, "checkedin_at": null, "can_checkin_checkout": true, "checkedout_latitude": null, "checkedout_longitude": null, "checkedout_location": null, "checkedout_at": null, "checkedin_duration": null, "can_checkin": true, "conference_id": null, "targetables": [{"id": 17008066468, "type": "Contact"}]}, "emitted_at": 1699903265258} diff --git a/airbyte-integrations/connectors/source-freshsales/metadata.yaml b/airbyte-integrations/connectors/source-freshsales/metadata.yaml index a3fe07521671..03a031b0d259 100644 --- a/airbyte-integrations/connectors/source-freshsales/metadata.yaml +++ b/airbyte-integrations/connectors/source-freshsales/metadata.yaml @@ -8,7 +8,12 @@ data: connectorSubtype: api connectorType: source definitionId: eca08d79-7b92-4065-b7f3-79c14836ebe7 - dockerImageTag: 0.1.4 + dockerImageTag: 1.0.0 + releases: + breakingChanges: + 1.0.0: + message: "Large update in schema data types. Need refresh data" + upgradeDeadline: "2023-11-23" dockerRepository: airbyte/source-freshsales documentationUrl: https://docs.airbyte.com/integrations/sources/freshsales githubIssueLabel: source-freshsales @@ -23,5 +28,5 @@ data: releaseStage: beta supportLevel: community tags: - - language:python + - language:low-code metadataSpecVersion: "1.0" diff --git a/airbyte-integrations/connectors/source-freshsales/setup.py b/airbyte-integrations/connectors/source-freshsales/setup.py index 91ef829534e2..2cc1107f0c8b 100644 --- a/airbyte-integrations/connectors/source-freshsales/setup.py +++ b/airbyte-integrations/connectors/source-freshsales/setup.py @@ -6,23 +6,23 @@ from setuptools import find_packages, setup MAIN_REQUIREMENTS = [ - "airbyte-cdk", + "airbyte-cdk~=0.1", ] TEST_REQUIREMENTS = [ "requests-mock~=1.9.3", - "pytest", - "pytest-mock", + "pytest~=6.2", + "pytest-mock~=3.6.1", ] setup( name="source_freshsales", description="Source implementation for Freshsales.", - author="Tuan Nguyen", - author_email="anhtuan.nguyen@me.com", + author="Airbyte", + author_email="contact@airbyte.io", packages=find_packages(), install_requires=MAIN_REQUIREMENTS, - package_data={"": ["*.json", "schemas/*.json", "schemas/shared/*.json"]}, + package_data={"": ["*.json", "*.yaml", "schemas/*.json", "schemas/shared/*.json"]}, extras_require={ "tests": TEST_REQUIREMENTS, }, diff --git a/airbyte-integrations/connectors/source-freshsales/source_freshsales/manifest.yaml b/airbyte-integrations/connectors/source-freshsales/source_freshsales/manifest.yaml new file mode 100644 index 000000000000..bf292c6c56f0 --- /dev/null +++ b/airbyte-integrations/connectors/source-freshsales/source_freshsales/manifest.yaml @@ -0,0 +1,286 @@ +version: 0.51.16 + +type: DeclarativeSource +check: + type: CheckStream + stream_names: + - contacts +definitions: + schema_loader: + type: JsonFileSchemaLoader + file_path: "./source_freshsales/schemas/{{ parameters['name'] }}.json" + selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: [] + basic_requester: + type: HttpRequester + url_base: "https://{{ config['domain_name'] }}/crm/sales/api/" + http_method: "GET" + authenticator: + type: ApiKeyAuthenticator + header: "Authorization" + api_token: "Token token={{ config['api_key'] }}" + requester: + $ref: "#/definitions/basic_requester" + request_parameters: + page: "{{ parameters.get('page', None) }}" + filter: "{{ parameters.get('filter', None) }}" + sort_type: "asc" + sort: "updated_at" + default_paginator: + type: "DefaultPaginator" + page_size_option: + type: "RequestOption" + inject_into: "request_parameter" + field_name: "per_page" + pagination_strategy: + type: "PageIncrement" + page_size: 50 + start_from_page: 1 + inject_on_first_request: true + page_token_option: + type: "RequestOption" + inject_into: "request_parameter" + field_name: "page" + retriever: + type: SimpleRetriever + record_selector: + $ref: "#/definitions/selector" + requester: + $ref: "#/definitions/requester" + paginator: + $ref: "#/definitions/default_paginator" + base_stream: + primary_key: "id" + retriever: + $ref: "#/definitions/retriever" + contacts_filters_stream: + $ref: "#/definitions/base_stream" + $parameters: + name: "contact_filters" + path: "contacts/filters" + retriever: + $ref: "#/definitions/retriever" + requester: + $ref: "#/definitions/basic_requester" + record_selector: + type: RecordSelector + extractor: + field_path: + - filters + record_filter: + condition: "{{ record['name'] == parameters['filter'] }}" + contacts_stream: + $ref: "#/definitions/base_stream" + $parameters: + name: "contacts" + filter: "All Contacts" + retriever: + $ref: "#/definitions/retriever" + requester: + $ref: "#/definitions/requester" + path: "contacts/view/{{ stream_slice.view_id }}" + record_selector: + type: RecordSelector + extractor: + field_path: + - contacts + partition_router: + type: SubstreamPartitionRouter + parent_stream_configs: + - stream: "#/definitions/contacts_filters_stream" + parent_key: "id" + partition_field: "view_id" + accounts_filters_stream: + $ref: "#/definitions/base_stream" + $parameters: + name: "sales_accounts_filter" + path: "sales_accounts/filters" + retriever: + $ref: "#/definitions/retriever" + requester: + $ref: "#/definitions/basic_requester" + record_selector: + type: RecordSelector + extractor: + field_path: + - filters + record_filter: + condition: "{{ record['name'] == parameters['filter'] }}" + accounts_stream: + $ref: "#/definitions/base_stream" + $parameters: + name: "accounts" + filter: "All Accounts" + retriever: + $ref: "#/definitions/retriever" + requester: + $ref: "#/definitions/requester" + path: "sales_accounts/view/{{ stream_slice.view_id }}" + record_selector: + type: RecordSelector + extractor: + field_path: + - sales_accounts + partition_router: + type: SubstreamPartitionRouter + parent_stream_configs: + - stream: "#/definitions/accounts_filters_stream" + parent_key: "id" + partition_field: "view_id" + deals_filters_stream: + $ref: "#/definitions/base_stream" + $parameters: + name: "deals_filter" + path: "deals/filters" + retriever: + $ref: "#/definitions/retriever" + requester: + $ref: "#/definitions/basic_requester" + record_selector: + type: RecordSelector + extractor: + field_path: + - filters + record_filter: + condition: "{{ record['name'] == parameters['filter'] }}" + open_deals_stream: + $ref: "#/definitions/base_stream" + $parameters: + name: "open_deals" + filter: "Open Deals" + retriever: + $ref: "#/definitions/retriever" + requester: + $ref: "#/definitions/requester" + path: "deals/view/{{ stream_slice.view_id }}" + record_selector: + type: RecordSelector + extractor: + field_path: + - deals + partition_router: + type: SubstreamPartitionRouter + parent_stream_configs: + - stream: "#/definitions/deals_filters_stream" + parent_key: "id" + partition_field: "view_id" + transformations: + - type: RemoveFields + field_pointers: + - ["fc_widget_collaboration"] + won_deals_stream: + $ref: "#/definitions/base_stream" + $parameters: + name: "won_deals" + filter: "Won Deals" + retriever: + $ref: "#/definitions/retriever" + requester: + $ref: "#/definitions/requester" + path: "deals/view/{{ stream_slice.view_id }}" + record_selector: + type: RecordSelector + extractor: + field_path: + - deals + partition_router: + type: SubstreamPartitionRouter + parent_stream_configs: + - stream: "#/definitions/deals_filters_stream" + parent_key: "id" + partition_field: "view_id" + transformations: + - type: RemoveFields + field_pointers: + - ["fc_widget_collaboration"] + lost_deals_stream: + $ref: "#/definitions/base_stream" + $parameters: + name: "lost_deals" + filter: "Lost Deals" + retriever: + $ref: "#/definitions/retriever" + requester: + $ref: "#/definitions/requester" + path: "deals/view/{{ stream_slice.view_id }}" + record_selector: + type: RecordSelector + extractor: + field_path: + - deals + partition_router: + type: SubstreamPartitionRouter + parent_stream_configs: + - stream: "#/definitions/deals_filters_stream" + parent_key: "id" + partition_field: "view_id" + transformations: + - type: RemoveFields + field_pointers: + - ["fc_widget_collaboration"] + open_tasks_stream: + $ref: "#/definitions/base_stream" + $parameters: + name: "open_tasks" + path: "tasks" + filter: "open" + retriever: + $ref: "#/definitions/retriever" + record_selector: + type: RecordSelector + extractor: + field_path: + - tasks + completed_tasks_stream: + $ref: "#/definitions/base_stream" + $parameters: + name: "completed_tasks" + path: "tasks" + filter: "completed" + retriever: + $ref: "#/definitions/retriever" + record_selector: + type: RecordSelector + extractor: + field_path: + - tasks + past_appointments_stream: + $ref: "#/definitions/base_stream" + $parameters: + name: "past_appointments" + path: "appointments" + filter: "past" + retriever: + $ref: "#/definitions/retriever" + record_selector: + type: RecordSelector + extractor: + field_path: + - appointments + upcoming_appointments_stream: + $ref: "#/definitions/base_stream" + $parameters: + name: "upcoming_appointments" + path: "appointments" + filter: "upcoming" + retriever: + $ref: "#/definitions/retriever" + record_selector: + type: RecordSelector + extractor: + field_path: + - appointments + +streams: + - "#/definitions/contacts_stream" + - "#/definitions/accounts_stream" + - "#/definitions/open_deals_stream" + - "#/definitions/won_deals_stream" + - "#/definitions/lost_deals_stream" + - "#/definitions/open_tasks_stream" + - "#/definitions/completed_tasks_stream" + - "#/definitions/past_appointments_stream" + - "#/definitions/upcoming_appointments_stream" diff --git a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/accounts.json b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/accounts.json index 231a18049eed..601134fea6b1 100644 --- a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/accounts.json +++ b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/accounts.json @@ -38,8 +38,8 @@ "last_seen": { "type": ["null", "string"] }, "lead_score": { "type": ["null", "integer"] }, "last_contacted": { "type": ["null", "string"] }, - "open_deals_amount": { "type": ["null", "number"] }, - "won_deals_amount": { "type": ["null", "number"] }, + "open_deals_amount": { "type": ["null", "string"] }, + "won_deals_amount": { "type": ["null", "string"] }, "links": { "type": ["null", "object"] }, "last_contacted_sales_activity_mode": { "type": ["null", "string"] }, "custom_field": { "type": ["null", "object"] }, diff --git a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/completed_tasks.json b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/completed_tasks.json index 7c5325c9d8e6..5d44344dfe8a 100644 --- a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/completed_tasks.json +++ b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/completed_tasks.json @@ -12,14 +12,14 @@ "targetable_type": { "type": ["null", "string"] }, "Possible": { "type": ["null", "string"] }, "owner_id": { "type": ["null", "integer"] }, - "status": { "type": ["null", "string"] }, + "status": { "type": ["null", "integer"] }, "creater_id": { "type": ["null", "integer"] }, "created_at": { "type": ["null", "string"] }, "updated_at": { "type": ["null", "string"] }, "outcome_id": { "type": ["null", "integer"] }, "task_type_id": { "type": ["null", "integer"] }, "updater_id": { "type": ["null", "integer"] }, - "targetables": { "type": ["null", "string"] }, + "targetables": { "type": ["null", "array"] }, "completed_date": { "type": ["null", "string"] } } } diff --git a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/contacts.json b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/contacts.json index cae7ab5ec745..db09dc756746 100644 --- a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/contacts.json +++ b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/contacts.json @@ -7,10 +7,10 @@ "id": { "type": ["null", "integer"] }, "first_name": { "type": ["null", "string"] }, "last_name": { "type": ["null", "string"] }, - "subscription_status": { "type": ["null", "string"] }, + "subscription_status": { "type": ["null", "integer"] }, "job_title": { "type": ["null", "string"] }, "email": { "type": ["null", "string"] }, - "emails": { "type": ["null", "string"] }, + "emails": { "type": ["null", "array"] }, "work_number": { "type": ["null", "string"] }, "external_id": { "type": ["null", "string"] }, "mobile_number": { "type": ["null", "string"] }, @@ -41,8 +41,8 @@ "last_seen": { "type": ["null", "string"] }, "lead_score": { "type": ["null", "integer"] }, "last_contacted": { "type": ["null", "string"] }, - "open_deals_amount": { "type": ["null", "number"] }, - "won_deals_amount": { "type": ["null", "number"] }, + "open_deals_amount": { "type": ["null", "string"] }, + "won_deals_amount": { "type": ["null", "string"] }, "links": { "type": ["null", "object"] }, "last_contacted_sales_activity_mode": { "type": ["null", "string"] }, "custom_field": { "type": ["null", "object"] }, @@ -68,16 +68,16 @@ "unsubscription_reason": { "type": ["null", "string"] }, "first_campaign": { "type": ["null", "string"] }, "total_sessions": { "type": ["null", "string"] }, - "mcr_id": { "type": ["null", "string"] }, + "mcr_id": { "type": ["null", "integer"] }, "last_campaign": { "type": ["null", "string"] }, "last_medium": { "type": ["null", "string"] }, "last_seen_chat": { "type": ["null", "string"] }, "first_medium": { "type": ["null", "string"] }, "other_unsubscription_reason": { "type": ["null", "string"] }, - "system_tags": { "type": ["null", "string"] }, + "system_tags": { "type": ["null", "array"] }, "latest_medium": { "type": ["null", "string"] }, "first_source": { "type": ["null", "string"] }, - "sms_subscription_status": { "type": ["null", "string"] }, + "sms_subscription_status": { "type": ["null", "integer"] }, "locale": { "type": ["null", "string"] }, "last_source": { "type": ["null", "string"] } } diff --git a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/lost_deals.json b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/lost_deals.json index 27067bba75d7..6f8dae4aaead 100644 --- a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/lost_deals.json +++ b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/lost_deals.json @@ -6,9 +6,9 @@ "properties": { "id": { "type": ["null", "integer"] }, "name": { "type": ["null", "string"] }, - "amount": { "type": ["null", "number"] }, + "amount": { "type": ["null", "string"] }, "currency_id": { "type": ["null", "integer"] }, - "base_currency_amount": { "type": ["null", "number"] }, + "base_currency_amount": { "type": ["null", "string"] }, "sales_account_id": { "type": ["null", "integer"] }, "deal_stage_id": { "type": ["null", "integer"] }, "deal_reason_id": { "type": ["null", "integer"] }, @@ -39,7 +39,7 @@ "tags": { "type": ["null", "array"] }, "last_contacted_sales_activity_mode": { "type": ["null", "string"] }, "last_contacted_via_sales_activity": { "type": ["null", "string"] }, - "expected_deal_value": { "type": ["null", "number"] }, + "expected_deal_value": { "type": ["null", "string"] }, "is_deleted": { "type": ["null", "boolean"] }, "team_user_ids": { "type": ["null", "string"] }, "avatar": { "type": ["null", "string"] }, diff --git a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/open_deals.json b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/open_deals.json index 27067bba75d7..6f8dae4aaead 100644 --- a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/open_deals.json +++ b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/open_deals.json @@ -6,9 +6,9 @@ "properties": { "id": { "type": ["null", "integer"] }, "name": { "type": ["null", "string"] }, - "amount": { "type": ["null", "number"] }, + "amount": { "type": ["null", "string"] }, "currency_id": { "type": ["null", "integer"] }, - "base_currency_amount": { "type": ["null", "number"] }, + "base_currency_amount": { "type": ["null", "string"] }, "sales_account_id": { "type": ["null", "integer"] }, "deal_stage_id": { "type": ["null", "integer"] }, "deal_reason_id": { "type": ["null", "integer"] }, @@ -39,7 +39,7 @@ "tags": { "type": ["null", "array"] }, "last_contacted_sales_activity_mode": { "type": ["null", "string"] }, "last_contacted_via_sales_activity": { "type": ["null", "string"] }, - "expected_deal_value": { "type": ["null", "number"] }, + "expected_deal_value": { "type": ["null", "string"] }, "is_deleted": { "type": ["null", "boolean"] }, "team_user_ids": { "type": ["null", "string"] }, "avatar": { "type": ["null", "string"] }, diff --git a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/open_tasks.json b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/open_tasks.json index 7c5325c9d8e6..5d44344dfe8a 100644 --- a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/open_tasks.json +++ b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/open_tasks.json @@ -12,14 +12,14 @@ "targetable_type": { "type": ["null", "string"] }, "Possible": { "type": ["null", "string"] }, "owner_id": { "type": ["null", "integer"] }, - "status": { "type": ["null", "string"] }, + "status": { "type": ["null", "integer"] }, "creater_id": { "type": ["null", "integer"] }, "created_at": { "type": ["null", "string"] }, "updated_at": { "type": ["null", "string"] }, "outcome_id": { "type": ["null", "integer"] }, "task_type_id": { "type": ["null", "integer"] }, "updater_id": { "type": ["null", "integer"] }, - "targetables": { "type": ["null", "string"] }, + "targetables": { "type": ["null", "array"] }, "completed_date": { "type": ["null", "string"] } } } diff --git a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/past_appointments.json b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/past_appointments.json index 018ba47b60f2..264f43f48153 100644 --- a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/past_appointments.json +++ b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/past_appointments.json @@ -20,7 +20,7 @@ "location": { "type": ["null", "string"] }, "created_at": { "type": ["null", "string"] }, "updated_at": { "type": ["null", "string"] }, - "is_allday": { "type": ["null", "string"] }, + "is_allday": { "type": ["null", "boolean"] }, "appointment_attendees_attributes": { "type": ["null", "array"] }, "outcome_id": { "type": ["null", "integer"] }, "latitude": { "type": ["null", "string"] }, @@ -31,7 +31,7 @@ "checkedout_latitude": { "type": ["null", "string"] }, "checkedin_duration": { "type": ["null", "string"] }, "checkedout_longitude": { "type": ["null", "string"] }, - "targetables": { "type": ["null", "string"] }, + "targetables": { "type": ["null", "array"] }, "can_checkin": { "type": ["null", "boolean"] }, "provider": { "type": ["null", "string"] }, "checkedout_at": { "type": ["null", "string"] }, diff --git a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/upcoming_appointments.json b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/upcoming_appointments.json index 018ba47b60f2..264f43f48153 100644 --- a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/upcoming_appointments.json +++ b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/upcoming_appointments.json @@ -20,7 +20,7 @@ "location": { "type": ["null", "string"] }, "created_at": { "type": ["null", "string"] }, "updated_at": { "type": ["null", "string"] }, - "is_allday": { "type": ["null", "string"] }, + "is_allday": { "type": ["null", "boolean"] }, "appointment_attendees_attributes": { "type": ["null", "array"] }, "outcome_id": { "type": ["null", "integer"] }, "latitude": { "type": ["null", "string"] }, @@ -31,7 +31,7 @@ "checkedout_latitude": { "type": ["null", "string"] }, "checkedin_duration": { "type": ["null", "string"] }, "checkedout_longitude": { "type": ["null", "string"] }, - "targetables": { "type": ["null", "string"] }, + "targetables": { "type": ["null", "array"] }, "can_checkin": { "type": ["null", "boolean"] }, "provider": { "type": ["null", "string"] }, "checkedout_at": { "type": ["null", "string"] }, diff --git a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/won_deals.json b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/won_deals.json index 27067bba75d7..6f8dae4aaead 100644 --- a/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/won_deals.json +++ b/airbyte-integrations/connectors/source-freshsales/source_freshsales/schemas/won_deals.json @@ -6,9 +6,9 @@ "properties": { "id": { "type": ["null", "integer"] }, "name": { "type": ["null", "string"] }, - "amount": { "type": ["null", "number"] }, + "amount": { "type": ["null", "string"] }, "currency_id": { "type": ["null", "integer"] }, - "base_currency_amount": { "type": ["null", "number"] }, + "base_currency_amount": { "type": ["null", "string"] }, "sales_account_id": { "type": ["null", "integer"] }, "deal_stage_id": { "type": ["null", "integer"] }, "deal_reason_id": { "type": ["null", "integer"] }, @@ -39,7 +39,7 @@ "tags": { "type": ["null", "array"] }, "last_contacted_sales_activity_mode": { "type": ["null", "string"] }, "last_contacted_via_sales_activity": { "type": ["null", "string"] }, - "expected_deal_value": { "type": ["null", "number"] }, + "expected_deal_value": { "type": ["null", "string"] }, "is_deleted": { "type": ["null", "boolean"] }, "team_user_ids": { "type": ["null", "string"] }, "avatar": { "type": ["null", "string"] }, diff --git a/airbyte-integrations/connectors/source-freshsales/source_freshsales/source.py b/airbyte-integrations/connectors/source-freshsales/source_freshsales/source.py index 45fba4481963..a2a6cc96dbd0 100644 --- a/airbyte-integrations/connectors/source-freshsales/source_freshsales/source.py +++ b/airbyte-integrations/connectors/source-freshsales/source_freshsales/source.py @@ -2,209 +2,16 @@ # Copyright (c) 2023 Airbyte, Inc., all rights reserved. # +from airbyte_cdk.sources.declarative.yaml_declarative_source import YamlDeclarativeSource -from abc import ABC -from typing import Any, Iterable, List, Mapping, MutableMapping, Optional, Tuple +""" +This file provides the necessary constructs to interpret a provided declarative YAML configuration file into +source connector. +WARNING: Do not modify this file. +""" -import requests -from airbyte_cdk.sources import AbstractSource -from airbyte_cdk.sources.streams import Stream -from airbyte_cdk.sources.streams.http import HttpStream -from airbyte_cdk.sources.streams.http.auth import TokenAuthenticator -from airbyte_cdk.sources.utils.transform import TransformConfig, TypeTransformer - -# Basic full refresh stream -class FreshsalesStream(HttpStream, ABC): - - primary_key: str = "id" - order_field: str = "updated_at" - object_name: str = None - require_view_id: bool = False - filter_value: str = None - - transformer: TypeTransformer = TypeTransformer(TransformConfig.DefaultSchemaNormalization) - - def __init__(self, domain_name: str, **kwargs): - super().__init__(**kwargs) - self.domain_name = domain_name - self.page = 1 - - @property - def url_base(self) -> str: - return f"https://{self.domain_name}/crm/sales/api/" - - @property - def auth_headers(self) -> Mapping[str, Any]: - return self.authenticator.get_auth_header() - - def next_page_token(self, response: requests.Response) -> Optional[Mapping[str, Any]]: - """ - There is no next page token in the respond so incrementing the page param until there is no new result - """ - list_result = response.json().get(self.object_name, []) - if list_result: - self.page += 1 - return self.page - else: - return None - - def request_params(self, **kwargs) -> MutableMapping[str, Any]: - params = {"page": self.page, "sort": self.order_field, "sort_type": "asc"} - if self.filter_value: - params["filter"] = self.filter_value - return params - - def parse_response(self, response: requests.Response, **kwargs) -> Iterable[Mapping]: - json_response = response.json() or {} - records = json_response.get(self.object_name, []) if self.object_name else json_response - yield from records - - def _get_filters(self) -> List: - """ - Some streams require a filter_id to be passed in. This function gets all available filters. - """ - url = f"{self.url_base}{self.object_name}/filters" - try: - response = self._session.get(url=url, headers=self.auth_headers) - response.raise_for_status() - return response.json().get("filters") - except requests.exceptions.RequestException as e: - self.logger.error(f"Error occured while getting `Filters` for stream `{self.name}`, full message: {e}") - raise - - def get_view_id(self) -> int: - """ - This function finds a relevant filter_id among all available filters by its name. - """ - filters = self._get_filters() - return next(_filter["id"] for _filter in filters if _filter["name"] == self.filter_name) - - def path(self, **kwargs) -> str: - if self.require_view_id: - return f"{self.object_name}/view/{self.get_view_id()}" - else: - return self.object_name - - -class Contacts(FreshsalesStream): - """ - API docs: https://developers.freshworks.com/crm/api/#contacts - """ - - object_name = "contacts" - filter_name = "All Contacts" - require_view_id = True - - -class Accounts(FreshsalesStream): - """ - API docs: https://developers.freshworks.com/crm/api/#accounts - """ - - object_name = "sales_accounts" - filter_name = "All Accounts" - require_view_id = True - - -class Deals(FreshsalesStream): - object_name = "deals" - require_view_id = True - - def parse_response(self, response: requests.Response, **kwargs) -> Iterable[Mapping]: - # This is to remove data form widget development. Keeping this in failed integration tests. - for record in super().parse_response(response): - record.pop("fc_widget_collaboration", None) - yield record - - -class OpenDeals(Deals): - """ - API docs: https://developers.freshworks.com/crm/api/#deals - """ - - filter_name = "Open Deals" - - -class WonDeals(Deals): - """ - API docs: https://developers.freshworks.com/crm/api/#deals - """ - - filter_name = "Won Deals" - - -class LostDeals(Deals): - """ - API docs: https://developers.freshworks.com/crm/api/#deals - """ - - filter_name = "Lost Deals" - - -class OpenTasks(FreshsalesStream): - """ - API docs: https://developers.freshworks.com/crm/api/#tasks - """ - - object_name = "tasks" - filter_value = "open" - - -class CompletedTasks(FreshsalesStream): - """ - API docs: https://developers.freshworks.com/crm/api/#tasks - """ - - object_name = "tasks" - filter_value = "completed" - - -class PastAppointments(FreshsalesStream): - """ - API docs: https://developers.freshworks.com/crm/api/#appointments - """ - - object_name = "appointments" - filter_value = "past" - - -class UpcomingAppointments(FreshsalesStream): - """ - API docs: https://developers.freshworks.com/crm/api/#appointments - """ - - object_name = "appointments" - filter_value = "upcoming" - - -# Source -class SourceFreshsales(AbstractSource): - @staticmethod - def get_input_stream_args(api_key: str, domain_name: str) -> Mapping[str, Any]: - return { - "authenticator": TokenAuthenticator(token=api_key, auth_method="Token"), - "domain_name": domain_name, - } - - def check_connection(self, logger, config) -> Tuple[bool, any]: - stream = Contacts(**self.get_input_stream_args(config["api_key"], config["domain_name"])) - try: - next(stream.read_records(sync_mode=None)) - return True, None - except requests.exceptions.RequestException as e: - return False, e - - def streams(self, config: Mapping[str, Any]) -> List[Stream]: - args = self.get_input_stream_args(config["api_key"], config["domain_name"]) - return [ - Contacts(**args), - Accounts(**args), - OpenDeals(**args), - WonDeals(**args), - LostDeals(**args), - OpenTasks(**args), - CompletedTasks(**args), - PastAppointments(**args), - UpcomingAppointments(**args), - ] +# Declarative Source +class SourceFreshsales(YamlDeclarativeSource): + def __init__(self): + super().__init__(**{"path_to_yaml": "manifest.yaml"}) diff --git a/airbyte-integrations/connectors/source-freshsales/source_freshsales/spec.json b/airbyte-integrations/connectors/source-freshsales/source_freshsales/spec.json deleted file mode 100644 index b3c15c2a28a8..000000000000 --- a/airbyte-integrations/connectors/source-freshsales/source_freshsales/spec.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "documentationUrl": "https://docs.airbyte.com/integrations/sources/freshsales", - "connectionSpecification": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Freshsales Spec", - "type": "object", - "required": ["domain_name", "api_key"], - "additionalProperties": true, - "properties": { - "domain_name": { - "type": "string", - "title": "Domain Name", - "description": "The Name of your Freshsales domain", - "examples": ["mydomain.myfreshworks.com"] - }, - "api_key": { - "type": "string", - "title": "API Key", - "description": "Freshsales API Key. See here. The key is case sensitive.", - "airbyte_secret": true - } - } - } -} diff --git a/airbyte-integrations/connectors/source-freshsales/source_freshsales/spec.yaml b/airbyte-integrations/connectors/source-freshsales/source_freshsales/spec.yaml new file mode 100644 index 000000000000..4ee33199d1f3 --- /dev/null +++ b/airbyte-integrations/connectors/source-freshsales/source_freshsales/spec.yaml @@ -0,0 +1,23 @@ +documentationUrl: https://docs.airbyte.com/integrations/sources/freshsales +connectionSpecification: + type: object + title: Freshsales Spec + $schema: http://json-schema.org/draft-07/schema# + required: + - domain_name + - api_key + properties: + domain_name: + type: string + order: 0 + title: Domain Name + description: "The Name of your Freshsales domain" + examples: + - "mydomain.myfreshworks.com" + api_key: + type: string + order: 1 + title: API Key + description: 'Freshsales API Key. See here. The key is case sensitive.' + airbyte_secret: true + additionalProperties: true diff --git a/airbyte-integrations/connectors/source-freshsales/unit_tests/__init__.py b/airbyte-integrations/connectors/source-freshsales/unit_tests/__init__.py deleted file mode 100644 index 46b7376756ec..000000000000 --- a/airbyte-integrations/connectors/source-freshsales/unit_tests/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -# Copyright (c) 2021 Airbyte, Inc., all rights reserved. -# diff --git a/airbyte-integrations/connectors/source-freshsales/unit_tests/conftest.py b/airbyte-integrations/connectors/source-freshsales/unit_tests/conftest.py deleted file mode 100644 index 9cdc02949ebd..000000000000 --- a/airbyte-integrations/connectors/source-freshsales/unit_tests/conftest.py +++ /dev/null @@ -1,19 +0,0 @@ -# -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. -# - -import json - -import pytest -from source_freshsales.source import SourceFreshsales - - -@pytest.fixture(scope="session", name="config") -def config_fixture(): - with open("secrets/config.json", "r") as config_file: - return json.load(config_file) - - -@pytest.fixture(name="stream_args") -def stream_args(config): - return SourceFreshsales().get_input_stream_args(config["api_key"], config["domain_name"]) diff --git a/airbyte-integrations/connectors/source-freshsales/unit_tests/test_source.py b/airbyte-integrations/connectors/source-freshsales/unit_tests/test_source.py deleted file mode 100644 index b4a1d7fb3f31..000000000000 --- a/airbyte-integrations/connectors/source-freshsales/unit_tests/test_source.py +++ /dev/null @@ -1,83 +0,0 @@ -# -# Copyright (c) 2023 Airbyte, Inc., all rights reserved. -# - -from unittest.mock import MagicMock, patch - -import pytest -import requests -from source_freshsales.source import Contacts, FreshsalesStream, OpenDeals, OpenTasks, SourceFreshsales - - -def test_get_input_stream_args(config): - source = SourceFreshsales() - expected_keys = ["authenticator", "domain_name"] - actual = source.get_input_stream_args(config["api_key"], config["domain_name"]) - for key in expected_keys: - assert key in actual.keys() - - -def test_check_connection(mocker, config): - source = SourceFreshsales() - logger_mock = MagicMock() - assert source.check_connection(logger_mock, config) == (True, None) - - -def test_count_streams(mocker): - source = SourceFreshsales() - config_mock = MagicMock() - streams = source.streams(config_mock) - expected_streams_number = 9 - assert len(streams) == expected_streams_number - - -def test_url_base(stream_args): - stream = FreshsalesStream(**stream_args) - expected = f"https://{stream_args.get('domain_name')}/crm/sales/api/" - actual = stream.url_base - assert actual == expected - - -def test_next_page_token(stream_args, requests_mock): - stream = Contacts(**stream_args) - stream_filters = [{"id": 1, "name": stream.filter_name}] - with patch.object(stream, "_get_filters", return_value=stream_filters) as mock_method: - url = f"{stream.url_base}{stream.path()}" - requests_mock.get(url, json={stream.name: [{"id": 123}]}) - response = requests.get(url) - assert stream.next_page_token(response) == 2 - mock_method.assert_called() - - -def test_request_params(stream_args): - stream = OpenTasks(**stream_args) - actual = stream.request_params() - expected = {"filter": "open", "page": 1, "sort": "updated_at", "sort_type": "asc"} - assert actual == expected - - -@pytest.mark.parametrize( - "stream, response, expected", - [ - (Contacts, [{"id": 123}], [{"id": 123}]), - (OpenDeals, [{"id": 234, "fc_widget_collaboration": {"test": "test"}}], [{"id": 234}]), - ], - ids=["Contacts", "OpenDeals"], -) -def test_parse_response(stream, response, expected, stream_args, requests_mock): - stream = stream(**stream_args) - stream_filters = [{"id": 1, "name": stream.filter_name}] - with patch.object(stream, "_get_filters", return_value=stream_filters) as mock_method: - url = f"{stream.url_base}{stream.path()}" - requests_mock.get(url, json={stream.object_name: response}) - _resp = requests.get(url) - assert list(stream.parse_response(_resp)) == expected - mock_method.assert_called() - - -def test_path(stream_args): - stream = Contacts(**stream_args) - stream_filters = [{"id": 1, "name": stream.filter_name}] - with patch.object(stream, "_get_filters", return_value=stream_filters) as mock_method: - assert stream.path() == "contacts/view/1" - mock_method.assert_called() diff --git a/docs/integrations/sources/freshsales-migrations.md b/docs/integrations/sources/freshsales-migrations.md new file mode 100644 index 000000000000..e059dc4e6d3c --- /dev/null +++ b/docs/integrations/sources/freshsales-migrations.md @@ -0,0 +1,6 @@ +# Freshsales Migration Guide + +## Upgrading to 1.0.0 + +All streams data types were updated to match the correct return from the API. +Need refresh schema to match latest updates. diff --git a/docs/integrations/sources/freshsales.md b/docs/integrations/sources/freshsales.md index 685398c4eae1..b8b100a0301c 100644 --- a/docs/integrations/sources/freshsales.md +++ b/docs/integrations/sources/freshsales.md @@ -69,6 +69,7 @@ The Freshsales connector should not run into Freshsales API limitations under no | Version | Date | Pull Request | Subject | |:--------|:-----------|:---------------------------------------------------------|:--------------------------------| +| 1.0.0 | 2023-10-21 | [31685](https://github.com/airbytehq/airbyte/pull/31685) | Migrate to Low-Code CDK | | 0.1.4 | 2023-03-23 | [24396](https://github.com/airbytehq/airbyte/pull/24396) | Certify to Beta | | 0.1.3 | 2023-03-16 | [24155](https://github.com/airbytehq/airbyte/pull/24155) | Set `additionalProperties` to `True` in `spec` to support BC | | 0.1.2 | 2022-07-14 | [00000](https://github.com/airbytehq/airbyte/pull/00000) | Tune the `get_view_id` function |