diff --git a/_data/taps/versions/mailchimp.yml b/_data/taps/versions/mailchimp.yml index c9c6b64c3..07ede6f13 100644 --- a/_data/taps/versions/mailchimp.yml +++ b/_data/taps/versions/mailchimp.yml @@ -2,9 +2,17 @@ # MAILCHIMP VERSIONS # # -------------------------- # -latest-version: "1" +latest-version: "2" released-versions: + - number: "2" + status: "released" + date-released: "" + # beta release: July 23, 2019 + # date-last-connection: + deprecation-date: "" + sunset-date: "" + - number: "1" status: "released" date-released: "March 9, 2020" diff --git a/_integration-schemas/mailchimp/v2/automations.md b/_integration-schemas/mailchimp/v2/automations.md new file mode 100644 index 000000000..d1b8c9f20 --- /dev/null +++ b/_integration-schemas/mailchimp/v2/automations.md @@ -0,0 +1,251 @@ +--- +tap: "mailchimp" +version: "2" + +key: "automation" +name: "automations" +doc-link: "https://developer.mailchimp.com/documentation/mailchimp/reference/automations/#read-get_automations" +singer-schema: "https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/automations.json" +description: | + The `{{ table.name }}` table contains summary info about your {{ integration.display_name }} account's automations. In {{ integration.display_name }}, an automation is a feature that sends a series of emails to subscribers when triggered by a specific date, activity, or event. + +replication-method: "Full Table" + +api-method: + name: "Get a list of automations" + doc-link: "https://developer.mailchimp.com/documentation/mailchimp/reference/automations/#read-get_automations" + +table-key-properties: "id" +valid-replication-keys: "" + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The automation ID." + foreign-key-id: "automation-id" + + - name: "create_time" + type: "date-time" + replication-key: true + description: "The date and time the Automation was created in ISO 8601 format." + + - name: "emails_sent" + type: "integer" + description: "The total number of emails sent for the Automation." + + - name: "recipients" + type: "object" + description: "The list settings for the automation" + subattributes: + - name: "list_id" + type: "string" + description: "The list ID." + + - name: "list_is_active" + type: "boolean" + description: "The status of the list used, namely if it's deleted or disabled." + + - name: "list_name" + type: "string" + description: "The name of the list." + + - name: "segment_opts" + type: "object" + description: "Details about segmentation options." + subattributes: + - name: "match" + type: "string" + description: | + The segment match type. Possible values are: + - `any` + - `all` + - name: "saved_segment_id" + type: "integer" + description: "The ID for an existing saved segment." + + - name: "conditions" + type: "array" + description: "Details about segment conditions." + subattributes: + - name: "condition_type" + type: "string" + description: "The type of the segment." + + - name: "field" + type: "string" + description: "The segment field." + + - name: "op" + type: "string" + description: "The operator." + + - name: "value" + type: "string" + description: "The value." + + - name: "store_id" + type: "string" + description: "The ID of the store." + + - name: "report_summary" + type: "object" + description: "A summary of opens, clicks, and unsubscribes for sent campaigns." + subattributes: + - name: "click_rate" + type: "number" + description: "The number of unique clicks, divided by the total number of successful deliveries." + + - name: "clicks" + type: "integer" + description: "The total number of clicks for an campaign." + + - name: "open_rate" + type: "number" + description: "The number of unique opens divided by the total number of successful deliveries." + + - name: "opens" + type: "integer" + description: "The total number of opens for a campaign." + + - name: "subscriber_clicks" + type: "integer" + description: "The number of unique clicks." + + - name: "unique_opens" + type: "integer" + description: "The number of unique opens." + + - name: "settings" + type: "object" + description: "The settings for the automation workflow." + subattributes: + - name: "authenticate" + type: "boolean" + description: "Indicates whether {{ integration.display_name }} authenticated the automation." + + - name: "auto_footer" + type: "boolean" + description: "Indicates whether {{ integration.display_name }}'s default footer is automatically appended to the automation." + - name: "from_name" + type: "string" + description: "The `from` name for the automation." + - name: "inline_css" + type: "boolean" + description: "Indicates whether the CSS included with the automation content is automatically inlined." + - name: "reply_to" + type: "string" + description: "The reply-to email address for the automation." + + - name: "title" + type: "string" + description: "The title of the automation." + + - name: "to_name" + type: "string" + description: "The automation's custom `to` name, typically the first name merge field." + + - name: "use_conversation" + type: "boolean" + description: "Indicates whether {{ integration.display_name }}'s Conversations feature is used to manage out-of-office replies." + + - name: "start_time" + type: "date-time" + description: "The date and time the Automation was started in ISO 8601 format." + + - name: "status" + type: "string" + description: | + The current status of the Automation. Possible values are: + + - `save` + - `paused` + - `sending` + + - name: "tracking" + type: "object" + description: "The tracking options for the automation." + subattributes: + - name: "capsule" + type: "object" + description: "Capsule tracking options for the automation." + subattributes: + - name: "notes" + type: "boolean" + description: "Indicates whether contact notes are updated for a campaign based on a subscriber's email address." + + - name: "clicktale" + type: "string" + description: "The custom slug for ClickTale tracking." + + - name: "ecomm360" + type: "boolean" + description: "Indicates whether eCommerce360 tracking is enabled." + + - name: "goal_tracking" + type: "boolean" + description: "Indicates whether Goal tracking is enabled." + + - name: "google_analytics" + type: "string" + description: "The custom slug for Google Analytics tracking." + + - name: "html_clicks" + type: "boolean" + description: "Indicates whether clicks in the HTML version of the automation are tracked." + + - name: "salesforce" + type: "object" + description: "Salesforce tracking options for an automation." + subattributes: + - name: "campaign" + type: "boolean" + description: "Indicates whether a campaign should be created in a connected Salesforce account." + + - name: "notes" + type: "boolean" + description: "Indicates whether contact notes are updated for a campaign based on a subscriber's email address." + + - name: "text_clicks" + type: "boolean" + description: "Indicates whether clicks are tracked in the plain-text version of the automation." + + - name: "opens" + type: "boolean" + description: "Whether to track opens. Defaults to true" + + - name: "trigger_settings" + type: "object" + description: "Available triggers for automation workflows." + subattributes: + - name: "runtime" + type: "object" + description: "" + subattributes: + - name: "hours" + type: "object" + description: "" + subattributes: + - name: "type" + type: "string" + description: "" + - name: "days" + type: "array" + description: "" + subattributes: + - name: "items" + type: "string" + description: "" + + - name: "workflow_emails_count" + type: "integer" + description: "The number of emails in the automation workflow." + + - name: "workflow_title" + type: "string" + description: "The title of the workflow type." + + - name: "workflow_type" + type: "string" + description: "The type of the workflow." +--- diff --git a/_integration-schemas/mailchimp/v2/campaigns.md b/_integration-schemas/mailchimp/v2/campaigns.md new file mode 100644 index 000000000..f2d9d5c56 --- /dev/null +++ b/_integration-schemas/mailchimp/v2/campaigns.md @@ -0,0 +1,575 @@ +--- +tap: "mailchimp" +version: "2" +key: "" + + +key: "campaign" +name: "campaigns" +doc-link: "https://mailchimp.com/developer/marketing/api/campaigns/" +singer-schema: "https://github.com/singer-io/tap-mailchimp/tree/master/tap_mailchimp/schemas/campaigns.json" +description: | + The `{{ table.name }}` table contains info about the campaigns in your {{ integration.display_name }} account. + +api-method: + name: "Get all campaigns" + doc-link: "https://mailchimp.com/developer/marketing/api/campaigns/list-campaigns/" + +replication-method: "Full Table" + +table-key-properties: "id" +valid-replication-keys: "" + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The campaign ID." + foreign-key-id: "campaign-id" + + - name: "ab_split_opts" + type: "object" + description: "" + subattributes: + - name: "split_test" + type: "string" + description: "" + + - name: "pick_winner" + type: "string" + description: "" + + - name: "wait_units" + type: "string" + description: "" + + - name: "wait_time" + type: "integer" + description: "" + + - name: "split_size" + type: "integer" + description: "" + + - name: "from_name_a" + type: "string" + description: "" + + - name: "from_name_b" + type: "string" + description: "" + + - name: "reply_email_a" + type: "string" + description: "" + + - name: "reply_email_b" + type: "string" + description: "" + + - name: "subject_a" + type: "string" + description: "" + + - name: "subject_b" + type: "string" + description: "" + + - name: "send_time_a" + type: "string" + description: "" + + - name: "send_time_b" + type: "string" + description: "" + + - name: "send_time_winner" + type: "string" + description: "" + + - name: "archive_url" + type: "string" + description: "The link to the campaign’s archive version in ISO 8601 format." + + - name: "content_type" + type: "string" + description: | + How the campaign’s content is put together. Possible values are: + + - `template` + - `drag_and_drop` + - `html` + - `url` + + - name: "create_time" + type: "date-time" + description: "The date and time the campaign was created in ISO 8601 format." + + - name: "delivery_status" + type: "object" + description: "Updates on campaigns in the process of sending." + subattributes: + - name: "enabled" + type: "boolean" + description: "Indicates if Campaign Delivery Status is enabled for this account and campaign." + + - name: "can_cancel" + type: "boolean" + description: "" + + - name: "status" + type: "string" + description: "" + + - name: "emails_sent" + type: "integer" + description: "" + + - name: "emails_canceled" + type: "integer" + description: "" + + - name: "emails_sent" + type: "integer" + description: "The total number of emails sent for this campaign." + + - name: "has_logo_merge_tag" + type: "boolean" + description: "Determines if the campaign contains the Brand Logo merge tag." + + - name: "long_archive_url" + type: "string" + description: "The original link to the campaign’s archive version." + + - name: "needs_block_refresh" + type: "boolean" + description: "Determines if the campaign needs its blocks refreshed by opening the web-based campaign editor." + + - name: "parent_campaign_id" + type: "string" + description: "If this campaign is the child of another campaign, this identifies the parent campaign. For Example, for RSS or Automation children." + + - name: "recipients" + type: "object" + description: "List settings for the campaign." + subattributes: + - name: "list_id" + type: "string" + description: "The list ID." + foreign-key-id: "list-id" + + - name: "list_is_active" + type: "boolean" + description: "The status of the list used, namely if it’s deleted or disabled." + + - name: "list_name" + type: "string" + description: "The name of the list." + + - name: "recipient_count" + type: "integer" + description: "" + + - name: "segment_opts" + type: "object" + description: "Details about segmentation options." + subattributes: + - name: "match" + type: "string" + description: | + The segment match type. Possible values are: + + - `any` + - `all` + + - name: "saved_segment_id" + type: "integer" + description: "The ID for an existing saved segment." + + - name: "conditions" + type: "array" + description: "Details about segment conditions." + subattributes: + - name: "condition_type" + type: "string" + description: "The type of the segment." + + - name: "field" + type: "string" + description: "The segment field." + + - name: "op" + type: "string" + description: "The operator." + + - name: "value" + type: "string" + description: "The value." + + - name: "prebuilt_segment_id" + type: "string" + description: "The prebuilt segment ID, if a prebuilt segment has been designated for this campaign." + + - name: "segment_text" + type: "string" + description: "A description of the segment used for the campaign. Formatted as a string marked up with HTML." + + - name: "report_summary" + type: "object" + description: "For sent campaigns, a summary of opens, clicks, and e-commerce data." + subattributes: + - name: "opens" + type: "integer" + description: "The total number of opens for a campaign." + + - name: "unique_opens" + type: "integer" + description: "The number of unique opens." + + - name: "open_rate" + type: "number" + description: "The number of unique opens divided by the total number of successful deliveries." + + - name: "clicks" + type: "integer" + description: "The total number of clicks for an campaign." + + - name: "subscriber_clicks" + type: "integer" + description: "The number of unique clicks." + + - name: "click_rate" + type: "number" + description: "The number of unique clicks, divided by the total number of successful deliveries." + + - name: "ecommerce" + type: "object" + description: "E-Commerce stats for a campaign." + subattributes: + - name: "total_orders" + type: "integer" + description: "The total orders for a campaign." + + - name: "total_spent" + type: "integer" + description: "The total spent for a campaign. Calculated as the sum of all order totals with no deductions." + + - name: "total_revenue" + type: "integer" + description: "The total revenue for a campaign. Calculated as the sum of all order totals minus shipping and tax totals." + + + - name: "resendable" + type: "boolean" + description: "Determines if the campaign qualifies to be resent to non-openers." + + - name: "rss_opts" + type: "object" + description: "" + subattributes: + - name: "feed_url" + type: "string" + description: "" + + - name: "frequency" + type: "string" + description: "" + + - name: "schedule" + type: "object" + description: "" + subattributes: + - name: "hour" + type: "integer" + description: "" + + - name: "daily_send" + type: "object" + description: "" + subattributes: + - name: "sunday" + type: "boolean" + description: "" + + - name: "monday" + type: "boolean" + description: "" + + - name: "tuesday" + type: "boolean" + description: "" + + - name: "wednesday" + type: "boolean" + description: "" + + - name: "thursday" + type: "boolean" + description: "" + + - name: "friday" + type: "boolean" + description: "" + + - name: "saturday" + type: "boolean" + description: "" + + - name: "weekly_send_day" + type: "string" + description: "" + + - name: "monthly_send_Date" + type: "number" + description: "" + + - name: "last_sent" + type: "string" + description: "" + + - name: "constrain_rss_img" + type: "boolean" + description: "" + + - name: "send_time" + type: "date-time" + description: "The date and time a campaign was sent." + + - name: "settings" + type: "object" + description: "The settings for the campaign." + subattributes: + - name: "subject_line" + type: "string" + description: "The subject line for the campaign." + + - name: "title" + type: "string" + description: "The title of the campaign." + + - name: "folder_id" + type: "string" + description: "If the campaign is listed in a folder, the ID for the folder." + + - name: "preview_text" + type: "string" + description: "The preview text for the campaign." + + - name: "from_name" + type: "string" + description: "The `from` name for the campaign." + + - name: "reply_to" + type: "string" + description: "The reply-to email address for the campaign." + + - name: "use_conversation" + type: "boolean" + description: "Indicates whether {{ integration.display_name }}'s Conversations feature is used to manage out-of-office replies." + + - name: "to_name" + type: "string" + description: "The campaign's custom `to` name, typically the first name merge field." + + - name: "authenticate" + type: "boolean" + description: "Indicates whether {{ integration.display_name }} authenticated the campaign." + + - name: "auto_footer" + type: "boolean" + description: "Indicates whether {{ integration.display_name }}'s default footer is automatically appended to the campaign." + + - name: "inline_css" + type: "boolean" + description: "Indicates whether the CSS included with the campaign content is automatically inlined." + + - name: "auto_tweet" + type: "boolean" + description: "" + + - name: "auto_fb_post" + type: "array" + description: "" + subattributes: + - name: "items" + type: "string" + description: "" + + - name: "fb_comments" + type: "boolean" + description: "" + + - name: "timewarp" + type: "boolean" + description: "Indicates if the campaign is sent using the Timewarp feature." + + - name: "template_id" + type: "string" + description: "The ID for the template used in the campaign." + + - name: "drag_and_drop" + type: "boolean" + description: "" + + - name: "social_card" + type: "object" + description: "The preview for the campaign, rendered by social networks like Facebook and Twitter." + subattributes: + - name: "image_url" + type: "string" + description: "The url for the header image for the card." + + - name: "description" + type: "string" + description: "A short summary of the campaign to display." + + - name: "title" + type: "string" + description: "The title for the card. Typically the subject line of the campaign." + + - name: "status" + type: "string" + description: "The current status of the campaign." + + - name: "tracking" + type: "object" + description: "The tracking options for the campaign." + subattributes: + - name: "opens" + type: "boolean" + description: "Indicates whether opens are tracked." + + - name: "html_clicks" + type: "boolean" + description: "Indicates whether clicks in the HTML version of the automation are tracked." + + - name: "text_clicks" + type: "boolean" + description: "Indicates whether clicks are tracked in the plain-text version of the campaign." + + - name: "goal_tracking" + type: "boolean" + description: "Indicates whether Goal tracking is enabled." + + - name: "ecomm360" + type: "boolean" + description: "Indicates whether eCommerce360 tracking is enabled." + + - name: "google_analytics" + type: "string" + description: "The custom slug for Google Analytics tracking." + + - name: "clicktale" + type: "string" + description: "The custom slug for ClickTale tracking." + + - name: "type" + type: "string" + description: | + The type of the campaign. Possible values are: + + - `regular` + - `plaintext` + - `absplit` + - `rss` + - `variate` + + - name: "variate_settings" + type: "object" + description: "" + subattributes: + - name: "winning_combination_id" + type: "string" + description: "" + + - name: "winning_campaign_id" + type: "string" + description: "" + + - name: "winner_criteria" + type: "string" + description: "" + + - name: "wait_time" + type: "integer" + description: "" + + - name: "test_size" + type: "integer" + description: "" + + - name: "subject_lines" + type: "array" + description: "" + subattributes: + - name: "items" + type: "string" + description: "" + + - name: "send_times" + type: "array" + description: "" + subattributes: + - name: "items" + type: "string" + description: "" + + - name: "from_names" + type: "array" + description: "" + subattributes: + - name: "items" + type: "string" + description: "" + + - name: "reply_to_addresses" + type: "array" + description: "" + subattributes: + - name: "items" + type: "string" + description: "" + + - name: "contents" + type: "array" + description: "" + subattributes: + - name: "items" + type: "string" + description: "" + + - name: "combinations" + type: "array" + description: "" + subattributes: + - name: "id" + type: "string" + description: "" + + - name: "subject_line" + type: "integer" + description: "" + + - name: "send_time" + type: "integer" + description: "" + + - name: "from_name" + type: "integer" + description: "" + + - name: "reply_to" + type: "integer" + description: "" + + - name: "content_description" + type: "integer" + description: "" + + - name: "recipients" + type: "integer" + description: "" + + - name: "web_id" + type: "integer" + description: "The ID used in the {{ integration.display_name }} web application." \ No newline at end of file diff --git a/_integration-schemas/mailchimp/v2/foreign-keys.md b/_integration-schemas/mailchimp/v2/foreign-keys.md new file mode 100644 index 000000000..5615dfd81 --- /dev/null +++ b/_integration-schemas/mailchimp/v2/foreign-keys.md @@ -0,0 +1,51 @@ +--- +tap-reference: "mailchimp" + +version: "1" + +foreign-keys: + - id: "automations-id" + attribute: "automation_id" + table: "automations" + all-foreign-keys: + - table: "automations" + join-on: "id" + + - id: "campaign-id" + attribute: "campaign_id" + table: "campaigns" + all-foreign-keys: + - table: "campaigns" + join-on: "id" + - table: "reports_email_activity" + + - id: "list-id" + attribute: "list_id" + table: "lists" + all-foreign-keys: + - table: "automations" + subattribute: "recipients" + - table: "campaigns" + subattribute: "recipients" + - table: "list_members" + - table: "list_segment_members" + - table: "list_segments" + - table: "lists" + join-on: "id" + - table: "reports_email_activity" + + # - id: "list-member-id" + # attribute: "" + # table: "list_members" + # all-foreign-keys: + + # - id: "list-segment-member-id" + # attribute: "" + # table: "list_segment_members" + # all-foreign-keys: + + # - id: "list-segment-id" + # attribute: "" + # table: "list_segments" + # all-foreign-keys: +--- \ No newline at end of file diff --git a/_integration-schemas/mailchimp/v2/list_members.md b/_integration-schemas/mailchimp/v2/list_members.md new file mode 100644 index 000000000..b737b27a6 --- /dev/null +++ b/_integration-schemas/mailchimp/v2/list_members.md @@ -0,0 +1,243 @@ +--- +tap: "mailchimp" +version: "2" + +key: "list-member" +name: "list_members" +doc-link: "" +singer-schema: "https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/list_members.json" +description: | + The `{{ table.name }}` table contains info about the members in a specific {{ integration.display_name }} list, including currently subscribed, unsubscribed, and bounced members. + +replication-method: "Key-based Incremental" + +table-key-properties: "id, list_id" +valid-replication-keys: "last_changed" + +api-method: + name: "Get information about members in a list" + doc-link: "https://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/#read-get_lists_list_id_members" + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The list member ID. This is the MD5 hash of the lowercase version of the list member’s email address." + #foreign-key-id: "list-member-id" + + - name: "list_id" + type: "string" + primary-key: true + description: "The list ID." + foreign-key-id: "list-id" + + - name: "consents_to_one_to_one_messaging" + type: "boolean" + description: "" + + - name: "contact_id" + type: "string" + description: "" + + - name: "email_address" + type: "string" + description: "Email address for a subscriber." + + - name: "email_client" + type: "string" + description: "The list member’s email client." + + - name: "email_type" + type: "string" + description: | + The type of email this member asked to get. Possible values are: + + - `html` + - `text` + + - name: "full_name" + type: "string" + description: "" + + - name: "interests" + type: "object" + description: "" + subattributes: + + - name: "ip_opt" + type: "string" + description: "The IP address the subscriber used to confirm their opt-in status." + + - name: "ip_signup" + type: "string" + description: "The IP address the subscriber signed up from." + + - name: "language" + type: "string" + description: "If set/detected, the subscriber’s language." + doc-link: "https://mailchimp.com/help/view-and-edit-contact-languages/?_ga=2.133440206.1967669071.1563545438-786188311.1561484332" + + - name: "last_changed" + type: "date-time" + description: "The date and time the member’s info was last changed in ISO 8601 format." + replication-key: true + + - name: "last_note" + type: "object" + description: "" + subattributes: + - name: "note_id" + type: "integer" + description: "" + + - name: "created_at" + type: "date-time" + description: "" + + - name: "created_by" + type: "string" + description: "" + + - name: "note" + type: "string" + description: "" + + - name: "location" + type: "object" + description: "Subscriber location information." + subattributes: + - name: "latitude" + type: "number" + description: "The location latitude." + + - name: "longitude" + type: "number" + description: " The location longitude." + + - name: "gmtoff" + type: "integer" + description: "The time difference in hours from GMT." + + - name: "dstoff" + type: "integer" + description: "The offset for timezones where daylight saving time is observed." + + - name: "region" + type: "string" + description: "" + + - name: "country_code" + type: "string" + description: "The unique code for the location country." + + - name: "timezone" + type: "string" + description: "The timezone for the location." + + - name: "marketing_permissions" + type: "array" + description: "" + subattributes: + - name: "marketing_permission_id" + type: "string" + description: "" + + - name: "text" + type: "string" + description: "" + + - name: "enabled" + type: "boolean" + description: "" + + - name: "member_rating" + type: "number" + description: "Star rating for this member, between `1` and `5`." + + - name: "merge_fields" + type: "object" + description: "An individual merge var and value for a member." + + - name: "source" + type: "string" + description: "The source from which the subscriber was added to this list." + + - name: "stats" + type: "object" + description: "Open and click rates for this subscriber." + subattributes: + - name: "avg_click_rate" + type: "number" + description: "The subscriber’s average clickthrough rate." + + - name: "avg_open_rate" + type: "number" + description: "The subscriber’s average open rate." + + - name: "ecommerce_data" + type: "object" + description: "" + subattributes: + - name: "total_revenue" + type: "number" + description: "" + + - name: "number_of_orders" + type: "number" + description: "" + + - name: "currency_code" + type: "string" + description: "" + + - name: "status" + type: "string" + description: | + Subscriber’s current status. Possible values are: + + - `subscribed` + - `unsubscribed` + - `cleaned` + - `pending` + + - name: "tags" + type: "array" + description: "The tags applied to this member." + subattributes: + - name: "id" + type: "integer" + description: "The tag ID." + + - name: "name" + type: "string" + description: "The name of the tag." + + - name: "tags_count" + type: "integer" + description: "The number of tags applied to this member." + + - name: "timestamp_opt" + type: "date-time" + description: "The date and time the subscribe confirmed their opt-in status in ISO 8601 format." + + - name: "timestamp_signup" + type: "date-time" + description: "The date and time the subscriber signed up for the list in ISO 8601 format." + + - name: "unique_email_id" + type: "string" + description: "An identifier for the address across all of {{ integration.display_name }}." + + - name: "unsubscribe_reason" + type: "string" + description: "A subscriber’s reason for unsubscribing." + + - name: "vip" + type: "boolean" + description: "The VIP status for the subscriber." + doc-link: "https://mailchimp.com/help/designate-and-send-to-vip-contacts/?_ga=2.138092912.1967669071.1563545438-786188311.1561484332" + + - name: "web_id" + type: "integer" + description: "The ID used in the {{ integration.display_name }} web application. View this campaign in your {{ integration.display_name }} account at `https://{dc}.admin.mailchimp.com/campaigns/show/?id={web_id}`." +--- \ No newline at end of file diff --git a/_integration-schemas/mailchimp/v2/list_segment_members.md b/_integration-schemas/mailchimp/v2/list_segment_members.md new file mode 100644 index 000000000..ece4f2853 --- /dev/null +++ b/_integration-schemas/mailchimp/v2/list_segment_members.md @@ -0,0 +1,166 @@ +--- +tap: "mailchimp" +version: "2" + +key: "list-segment-member" +name: "list_segment_members" +doc-link: "" +singer-schema: "https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/list_segment_members.json" +description: | + The `{{ table.name }}` table contains info about members in a [saved segment](https://mailchimp.com/help/save-and-manage-segments/){:target="new"} + +replication-method: "Full Table" + +table-key-properties: "id" +valid-replication-keys: "" + +api-method: + name: "Get information about all members in a list segment" + doc-link: "https://developer.mailchimp.com/documentation/mailchimp/reference/lists/segments/members/#read-get_lists_list_id_segments_segment_id_members" + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The MD5 hash of the lowercase version of the list member’s email address." + #foreign-key-id: "list-member-id" + + - name: "email_address" + type: "string" + description: "Email address for a subscriber." + + - name: "email_client" + type: "string" + description: "The list member’s email client." + + - name: "email_type" + type: "string" + description: | + The type of email this member asked to get. Possible values are: + + - `html` + - `text` + + - name: "interests" + type: "object" + description: "The key of this object’s properties is the ID of the interest in question." + + - name: "ip_opt" + type: "string" + description: "The IP address the subscriber used to confirm their opt-in status." + + - name: "ip_signup" + type: "string" + description: "The IP address the subscriber signed up from." + + - name: "language" + type: "string" + description: "If set/detected, the subscriber’s language." + doc-link: "https://mailchimp.com/help/view-and-edit-contact-languages/?_ga=2.133440206.1967669071.1563545438-786188311.1561484332" + + - name: "last_changed" + type: "date-time" + description: "" + + - name: "list_id" + type: "string" + description: "The list ID." + foreign-key-id: "list-id" + + - name: "last_note" + type: "object" + description: "" + subattributes: + - name: "note_id" + type: "integer" + description: "" + + - name: "created_at" + type: "date-time" + description: "" + + - name: "created_by" + type: "string" + description: "" + + - name: "note" + type: "string" + description: "" + + - name: "location" + type: "object" + description: "Subscriber location information." + subattributes: + - name: "country_code" + type: "string" + description: "The unique code for the location country." + + - name: "dstoff" + type: "integer" + description: "The offset for timezones where daylight saving time is observed." + + - name: "gmtoff" + type: "integer" + description: "The time difference in hours from GMT." + + - name: "latitude" + type: "number" + description: "The location latitude." + + - name: "longitude" + type: "number" + description: " The location longitude." + + - name: "timezone" + type: "string" + description: "The timezone for the location." + description: "" + + - name: "member_rating" + type: "number" + description: "Star rating for this member, between `1` and `5`." + + - name: "merge_fields" + type: "anything" + description: "An individual merge var and value for a member." + + - name: "stats" + type: "object" + description: "Open and click rates for this subscriber." + subattributes: + - name: "avg_click_rate" + type: "number" + description: "The subscriber’s average clickthrough rate." + + - name: "avg_open_rate" + type: "number" + description: "The subscriber’s average open rate." + + - name: "status" + type: "string" + description: | + Subscriber’s current status. Possible values are: + + - `subscribed` + - `unsubscribed` + - `cleaned` + - `pending` + - `transactional` + + - name: "timestamp_opt" + type: "date-time" + description: "The date and time the subscribe confirmed their opt-in status in ISO 8601 format." + + - name: "timestamp_signup" + type: "date-time" + description: "The date and time the subscriber signed up for the list in ISO 8601 format." + + - name: "unique_email_id" + type: "string" + description: "An identifier for the address across all of {{ integration.display_name }}." + + - name: "vip" + type: "boolean" + description: "The VIP status for the subscriber." + doc-link: "https://mailchimp.com/help/designate-and-send-to-vip-contacts/?_ga=2.138092912.1967669071.1563545438-786188311.1561484332" +--- \ No newline at end of file diff --git a/_integration-schemas/mailchimp/v2/list_segments.md b/_integration-schemas/mailchimp/v2/list_segments.md new file mode 100644 index 000000000..6b802dd36 --- /dev/null +++ b/_integration-schemas/mailchimp/v2/list_segments.md @@ -0,0 +1,88 @@ +--- +tap: "mailchimp" +version: "2" + +key: "list-segment" +name: "list_segments" +doc-link: "" +singer-schema: "https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/list_segments.json" +description: | + The `{{ table.name }}` table contains info about the available segments for a specific list. + +replication-method: "Full Table" + +table-key-properties: "id" +valid-replication-keys: "" + +api-method: + name: "Get information about all segments in a list" + doc-link: "https://developer.mailchimp.com/documentation/mailchimp/reference/lists/segments/#read-get_lists_list_id_segments" + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The unique ID for the segment." + + - name: "updated_at" + type: "date-time" + description: "The date and time the segment was last updated in ISO 8601 format." + + - name: "created_at" + type: "date-time" + description: "The date and time the segment was created in ISO 8601 format." + + - name: "list_id" + type: "string" + description: "The list ID." + foreign-key-id: "list-id" + + - name: "member_count" + type: "integer" + description: "The number of active subscribers currently included in the segment." + + - name: "name" + type: "string" + description: "The name of the segment." + + - name: "options" + type: "object" + description: "The conditions of the segment. Static segments (tags) and fuzzy segments don’t have conditions." + subattributes: + - name: "conditions" + type: "array" + description: "The segment conditions." + subattributes: + - name: "condition_type" + type: "string" + description: "The type of the segment." + + - name: "field" + type: "string" + description: "The segment field." + + - name: "op" + type: "string" + description: "The operator." + + - name: "value" + type: "string" + description: "The value." + + - name: "match" + type: "string" + description: | + The match type. Possible values are: + + - `any` + - `all` + + - name: "type" + type: "string" + description: | + The type of segment. Possible values are: + + - `saved` + - `static` + - `fuzzy` +--- \ No newline at end of file diff --git a/_integration-schemas/mailchimp/v2/lists.md b/_integration-schemas/mailchimp/v2/lists.md new file mode 100644 index 000000000..998aa38fd --- /dev/null +++ b/_integration-schemas/mailchimp/v2/lists.md @@ -0,0 +1,236 @@ +--- +tap: "mailchimp" +version: "2" +key: "list" +name: "lists" +doc-link: "" +singer-schema: "https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/lists.json" +description: | + The `{{ table.name }}` table contains info about all the lists in your {{ integration.display_name }} account. A list is also known as an audience, and is where all contacts are stored and managed in {{ integration.display_name }}. + +replication-method: "Full Table" + +table-key-properties: "id" +valid-replication-keys: "" + +api-method: + name: "Get information about all lists" + doc-link: "https://developer.mailchimp.com/documentation/mailchimp/reference/lists/#read-get_lists" + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The list ID." + foreign-key-id: "list-id" + + - name: "beamer_address" + type: "string" + description: | + The list’s [Email Beamer address](https://mailchimp.com/help/use-email-beamer-to-create-a-campaign/){:target="new"}. + + - name: "campaign_defaults" + type: "object" + description: | + [Default values for campaigns](https://mailchimp.com/help/edit-your-emails-subject-preview-text-from-name-or-from-email-address){:target="new"} created for this list. + subattributes: + - name: "from_email" + type: "string" + description: "The default from email for campaigns sent to this list." + + - name: "from_name" + type: "string" + description: "The default from name for campaigns sent to this list." + + - name: "language" + type: "string" + description: "The default language for this lists’s forms." + + - name: "subject" + type: "string" + description: "The default subject line for campaigns sent to this list." + + - name: "contact" + type: "object" + description: | + [Contact information displayed in campaign footers](https://mailchimp.com/help/about-campaign-footers){:target="new"} to comply with international spam laws. + subattributes: + - name: "address1" + type: "string" + description: "The street address for the list contact." + + - name: "address2" + type: "string" + description: "The street address for the list contact." + + - name: "city" + type: "string" + description: "The city for the list contact." + + - name: "company" + type: "string" + description: "The company name for the list." + + - name: "country" + type: "string" + description: "A two-character ISO3166 country code. Defaults to `US` if invalid." + + - name: "phone" + type: "string" + description: "The phone number for the list contact." + + - name: "state" + type: "string" + description: "The state for the list contact." + + - name: "zip" + type: "string" + description: "The postal or zip code for the list contact." + + - name: "date_created" + type: "date-time" + description: "The date and time that this list was created in ISO 8601 format." + + - name: "double_optin" + type: "boolean" + description: "Whether or not to require the subscriber to confirm subscription via email." + + - name: "email_type_option" + type: "boolean" + description: "Whether the list supports multiple formats for emails. When set to `true`, subscribers can choose whether they want to receive HTML or plain-text emails. When set to `false`, subscribers will receive HTML emails, with a plain-text alternative backup." + + - name: "has_welcome" + type: "boolean" + description: "Whether or not this list has a welcome automation connected." + + - name: "list_rating" + type: "integer" + description: "An auto-generated activity score for the list (`0-5`)." + + - name: "marketing_permissions" + type: "boolean" + description: "Whether or not the list has marketing permissions (eg. GDPR) enabled." + + - name: "modules" + type: "array" + description: "Any list-specific modules installed for this list." + subattributes: + - name: "value" + type: "string" + description: "" + + - name: "name" + type: "string" + description: "The name of the list." + + - name: "notify_on_subscribe" + type: "string" + description: "The email address to send subscribe notifications to." + + - name: "notify_on_unsubscribe" + type: "string" + description: "The email address to send unsubscribe notifications to." + + - name: "permission_reminder" + type: "string" + description: | + The [permission reminder](https://mailchimp.com/help/edit-the-permission-reminder){:target="new"} for the list. + + - name: "stats" + type: "object" + description: | + Stats for the list. According to {{ integration.display_name }}, `"Many of these are cached for at least five minutes."` + subattributes: + - name: "avg_sub_rate" + type: "number" + description: "The average number of subscriptions per month for the list. **Note**: This field will only have a value if it has been calculated by {{ integration.display_name }}." + + - name: "avg_unsub_rate" + type: "number" + description: "The average number of unsubscriptions per month for the list. **Note**: This field will only have a value if it has been calculated by {{ integration.display_name }}." + + - name: "campaign_count" + type: "integer" + description: "The number of campaigns in any status that use this list." + + - name: "campaign_last_sent" + type: "date-time" + description: "The date and time the last campaign was sent to this list in ISO 8601 format. This is updated when a campaign is sent to 10 or more recipients." + + - name: "cleaned_count" + type: "integer" + description: "The number of members cleaned from the list." + + - name: "cleaned_count_since_send" + type: "integer" + description: "The number of members cleaned from the list since the last campaign was sent." + + - name: "click_rate" + type: "number" + description: "The average click rate, a percentage represented as a number between 0 and 100, per campaign for the list. **Note**: This field will only have a value if it has been calculated by {{ integration.display_name }}." + + - name: "last_sub_date" + type: "date-time" + description: "The date and time of the last time someone subscribed to this list in ISO 8601 format." + + - name: "last_unsub_date" + type: "date-time" + description: "The date and time of the last time someone unsubscribed from this list in ISO 8601 format." + + - name: "member_count" + type: "integer" + description: "The number of active members in the list." + + - name: "member_count_since_send" + type: "integer" + description: "The number of active members in the list since the last campaign was sent." + + - name: "merge_field_count" + type: "integer" + description: "The number of merge vars for this list (not EMAIL, which is required)." + + - name: "open_rate" + type: "number" + description: "The average open rate, a percentage represented as a number between 0 and 100, per campaign for the list. **Note**: This field will only have a value if it has been calculated by {{ integration.display_name }}." + + - name: "target_sub_rate" + type: "number" + description: "The target number of subscriptions per month for the list to keep it growing. **Note**: This field will only have a value if it has been calculated by {{ integration.display_name }}." + + - name: "unsubscribe_count" + type: "integer" + description: "The number of members who have unsubscribed from the list." + + - name: "unsubscribe_count_since_send" + type: "integer" + description: "The number of members who have unsubscribed since the last campaign was sent." + + - name: "total_contacts" + type: "integer" + description: "" + + - name: "subscribe_url_long" + type: "string" + description: "The full version of this list’s subscribe form (host will vary)." + + - name: "subscribe_url_short" + type: "string" + description: | + {{ integration.display_name }}'s [EepURL shortened version](https://mailchimp.com/help/share-your-signup-form/){:target="new"} of this list’s subscribe form. + + - name: "use_archive_bar" + type: "boolean" + description: "Whether campaigns for this list use the Archive Bar in archives by default." + + - name: "visibility" + type: "string" + description: | + Indicates if the list is [public or private](https://mailchimp.com/help/about-list-publicity/){:target="new"}. Possible values are: + + - `pub` (Public) + - `prv` (Private) + + - name: "web_id" + type: "string" + description: "The ID used in the {{ integration.display_name }} web application. View this list in your {{ integration.display_name }} account at `https://{dc}.admin.mailchimp.com/lists/members/?id={web_id}`." +--- \ No newline at end of file diff --git a/_integration-schemas/mailchimp/v2/reports_email_activity.md b/_integration-schemas/mailchimp/v2/reports_email_activity.md new file mode 100644 index 000000000..3d4a5db4f --- /dev/null +++ b/_integration-schemas/mailchimp/v2/reports_email_activity.md @@ -0,0 +1,79 @@ +--- +tap: "mailchimp" +version: "2" + +key: "report-email-activity" +name: "reports_email_activity" +doc-link: "https://developer.mailchimp.com/documentation/mailchimp/reference/reports/email-activity/" +singer-schema: "https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/reports_email_activity.json" +description: | + The `{{ table.name }}` table contains info about a member's subscriber activity in a specific campaign. + +replication-method: "Key-based Incremental" + +table-key-properties: "_sdc_record_hash" +valid-replication-keys: "timestamp" + +api-method: + name: "Use batch operation" + doc-link: "https://developer.mailchimp.com/documentation/mailchimp/guides/how-to-use-batch-operations/" + +attributes: + - name: "_sdc_record_hash" + type: "string" + primary-key: true + description: "" + + - name: "action" + type: "string" + description: | + The action performed on the email. Possible values are: + + - `open` + - `click` + - `bounce` + + - name: "campaign_id" + type: "string" + description: "The campaign ID." + foreign-key-id: "campaign-id" + + - name: "timestamp" + type: "date-time" + description: "The date and time recorded for the action in ISO 8601 format." + replication-key: true + + - name: "email_address" + type: "string" + description: "Email address for a subscriber." + + - name: "email_id" + type: "string" + description: "The MD5 hash of the lowercase version of the list member’s email address." + + - name: "ip" + type: "string" + description: "The IP address recorded for the action." + + - name: "list_id" + type: "string" + description: "The list ID." + foreign-key-id: "list-id" + + - name: "list_is_active" + type: "boolean" + description: "" + + - name: "type" + type: "string" + description: | + **Applicable to `bounce` actions only**. The type of bounce received. Possible values are: + + - `hard` + - `soft` + + - name: "url" + type: "string" + description: | + **Applicable to `click` actions only**. The URL on which the member clicked. +--- \ No newline at end of file diff --git a/_integration-schemas/mailchimp/v2/unsubscribes.md b/_integration-schemas/mailchimp/v2/unsubscribes.md new file mode 100644 index 000000000..887304d4f --- /dev/null +++ b/_integration-schemas/mailchimp/v2/unsubscribes.md @@ -0,0 +1,62 @@ +--- +tap: "mailchimp" +version: "2" +key: "unsubscribe" +name: "unsubscribes" +doc-link: "https://mailchimp.com/developer/marketing/api/unsub-reports/" +singer-schema: "https://github.com/singer-io/tap-mailchimp/blob/master/tap_mailchimp/schemas/unsubscribes.json" +description: | + The `{{ table.name }}` table contains info about members who have unsubscribed from a specific campaign. + +replication-method: "Key-based Incremental" + +table-key-properties: "campaign_id, email_id" +valid-replication-keys: "timestamp" + +api-method: + name: "Get unsubscribed list members" + doc-link: "https://developer.mailchimp.com/documentation/mailchimp/reference/reports/unsubscribed/#read-get_reports_campaign_id_unsubscribed" + +attributes: + - name: "campaign_id" + type: "string" + primary-key: true + description: "The campaign ID." + foreign-key-id: "campaign-id" + + - name: "email_id" + type: "string" + primary-key: true + description: "The MD5 hash of the lowercase version of the list member’s email address." + + - name: "email_address" + type: "string" + description: "Email address for a subscriber." + + - name: "list_id" + type: "string" + description: "The list ID." + foreign-key-id: "list-id" + + - name: "list_is_active" + type: "boolean" + description: "The status of the list used, namely if it’s deleted or disabled." + + - name: "merge_fields" + type: "object" + description: "An individual merge var and value for a member." + + - name: "reason" + type: "string" + description: "If available, the reason listed by the member for unsubscribing." + + - name: "timestamp" + type: "date-time" + description: "The date and time the member opted-out in ISO 8601 format." + replication-key: true + + - name: "vip" + type: "boolean" + description: "The VIP status for the subscriber." + doc-link: "https://mailchimp.com/help/designate-and-send-to-vip-contacts/?_ga=2.138092912.1967669071.1563545438-786188311.1561484332" +--- \ No newline at end of file diff --git a/_saas-integrations/mailchimp/v1/mailchimp-v1.md b/_saas-integrations/mailchimp/v1/mailchimp-v1.md index fa72187d8..7533572ee 100644 --- a/_saas-integrations/mailchimp/v1/mailchimp-v1.md +++ b/_saas-integrations/mailchimp/v1/mailchimp-v1.md @@ -13,10 +13,10 @@ # -------------------------- # title: MailChimp (v1) -permalink: /integrations/saas/mailchimp +permalink: /integrations/saas/mailchimp/v1 keywords: mailchimp, integration, schema, etl mailchimp, mailchimp etl, mailchimp schema layout: singer -# input: false +input: false key: "mailchimp-setup" diff --git a/_saas-integrations/mailchimp/v2/mailchimp-v2.md b/_saas-integrations/mailchimp/v2/mailchimp-v2.md new file mode 100644 index 000000000..863c35a87 --- /dev/null +++ b/_saas-integrations/mailchimp/v2/mailchimp-v2.md @@ -0,0 +1,115 @@ +--- +# -------------------------- # +# USING THIS TEMPLATE # +# -------------------------- # + +## NEED HELP USING THIS TEMPLATE? SEE: +## https://docs-about-stitch-docs.netlify.com/reference/integration-templates/saas/ +## FOR INSTRUCTIONS & REFERENCE INFO + + +# -------------------------- # +# Page & Formatting # +# -------------------------- # + +title: MailChimp (v2) +permalink: /integrations/saas/mailchimp +keywords: mailchimp, integration, schema, etl mailchimp, mailchimp etl, mailchimp schema +layout: singer +# input: false + +key: "mailchimp-setup" + +# -------------------------- # +# Tap Details # +# -------------------------- # + +name: "mailchimp" +display_name: "MailChimp" + +singer: true +tap-name: "MailChimp" +repo-url: https://github.com/singer-io/tap-mailchimp + +this-version: "2" + +api: | + [{{ integration.display_name }} API 3.0](https://developer.mailchimp.com/documentation/mailchimp/reference/overview/){:target="new"} + +# -------------------------- # +# Stitch Details # +# -------------------------- # + +certified: true + +historical: "1 year" +frequency: "1 hour" +tier: "Standard" +status-url: "https://status.mailchimp.com/" + +api-type: "platform.mailchimp" + +anchor-scheduling: true +cron-scheduling: true + +table-selection: true +column-selection: true + +extraction-logs: true +loading-reports: true + + +# -------------------------- # +# Feature Summary # +# -------------------------- # + +feature-summary: | + Stitch's {{ integration.display_name }} integration replicates data using the {{ integration.api | flatify | strip }}. Refer to the [Schema](#schema) section for a list of objects available for replication. + + +# -------------------------- # +# Setup Instructions # +# -------------------------- # + +requirements-list: + - item: | + **To verify your access in {{ integration.display_name }}.** Stitch will only be able to replicate the same data as the user who authorizes the integration. + + If this user has restricted permissions - meaning the user doesn't have access to all campaigns or lists, for example - Stitch may encounter issues replicating data. + +setup-steps: + - title: "Add {{ integration.display_name }} as a Stitch data source" + anchor: "add-stitch-data-source" + content: | + {% include integrations/shared-setup/connection-setup.html %} + - title: "Define the historical replication start date" + anchor: "define-historical-sync" + content: | + {% include integrations/saas/setup/historical-sync.html %} + + - title: "Create a replication schedule" + anchor: "define-rep-frequency" + content: | + {% include integrations/shared-setup/replication-frequency.html %} + + - title: "Authorize Stitch to access {{ integration.display_name }}" + anchor: "grant-stitch-authorization" + content: | + 1. When finished in the **Integration Settings** page, click the **Authorize** button. You'll be prompted to sign into your {{ integration.display_name }} account. + 2. Sign into your {{ integration.display_name }} account. + 3. After the authorization process is successfully completed, you'll be directed back to Stitch. + 4. Click {{ app.buttons.finish-int-setup }}. + - title: "Set objects to replicate" + anchor: "setting-data-to-replicate" + content: | + {% include integrations/shared-setup/data-selection/object-selection.html %} + +# -------------------------- # +# Integration Tables # +# -------------------------- # + +# Looking for the table schemas & info? +# Each table has a its own .md file in /_integration-schemas/mailchimp +--- +{% assign integration = page %} +{% include misc/data-files.html %} \ No newline at end of file