diff --git a/Gemfile b/Gemfile index 5583afb03..69e2ad103 100755 --- a/Gemfile +++ b/Gemfile @@ -5,4 +5,5 @@ gem 'jekyll' gem 'jekyll-redirect-from' # https://github.com/jekyll/jekyll-redirect-from gem 'jekyll-contentblocks' gem 'jekyll-include-cache' -gem 'jekyll-random' \ No newline at end of file +gem 'jekyll-random' +gem 'kramdown-parser-gfm' \ No newline at end of file diff --git a/_data/taps/versions/intercom.yml b/_data/taps/versions/intercom.yml index 860c35b92..cf0d29cdf 100644 --- a/_data/taps/versions/intercom.yml +++ b/_data/taps/versions/intercom.yml @@ -1,10 +1,26 @@ +# -------------------------- # +# USING THIS TEMPLATE # +# -------------------------- # + +## NEED HELP USING THIS TEMPLATE? SEE: +## https://docs-about-stitch-docs.netlify.com/reference/integration-templates/integration-versions/ +## FOR INSTRUCTIONS & REFERENCE INFO + + # -------------------------- # # INTERCOM VERSIONS # # -------------------------- # -latest-version: "02-02-2016" +latest-version: "1" released-versions: + - number: "1" + status: "beta" + date-released: "August 14, 2020" + # date-last-connection: + deprecation-date: "" + sunset-date: "" + - number: "02-02-2016" # not a singer tap status: "released" date-released: "February 2, 2016" diff --git a/_developer-files/connect/api/objects/form-properties/sources/saas/intercom-object.md b/_developer-files/connect/api/objects/form-properties/sources/saas/intercom-object.md new file mode 100644 index 000000000..fc216e7f5 --- /dev/null +++ b/_developer-files/connect/api/objects/form-properties/sources/saas/intercom-object.md @@ -0,0 +1,59 @@ +--- +# -------------------------- # +# USING THIS TEMPLATE # +# -------------------------- # + +## NEED HELP USING THIS TEMPLATE? SEE: +## https://docs-about-stitch-docs.netlify.com/reference/connect-templates/destination-form-property/ +## FOR INSTRUCTIONS & REFERENCE INFO + + +# -------------------------- # +# CONTENT TYPE # +# -------------------------- # + +content-type: "api-form" +form-type: "source" +key: "source-form-properties-intercom-object" + + +# -------------------------- # +# OBJECT INFO # +# -------------------------- # + +title: "Intercom Source Form Property" +api-type: "platform.intercom" +display-name: "Intercom" + +source-type: "saas" +docs-name: "intercom" + +# -------------------------- # +# OBJECT ATTRIBUTES # +# -------------------------- # + +uses-start-date: true + +# Only source-specific attributes need to be listed here. +# The following attributes are considered common, +# and therefore don't need to be listed: +# anchor_time, cron_expression, frequency_in_minutes, image_version, start_date + + +# -------------------------- # +# OAUTH PROPERTIES # +# -------------------------- # + +oauth-link: "https://developers.intercom.com/building-apps/docs/setting-up-oauth" + +oauth-description: "" + +oauth-attributes: + - name: "access_token" + type: "string" + required: true + credential: true + description: | + The token used to access your {{ form-property.display-name }} workspace's data via API. + value: "" +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v02-02-2016/admins.md b/_integration-schemas/intercom/v02-02-2016/admins.md new file mode 100755 index 000000000..83ac952cb --- /dev/null +++ b/_integration-schemas/intercom/v02-02-2016/admins.md @@ -0,0 +1,49 @@ +--- +tap: "intercom" +version: "02-02-2016" + +name: "admins" +doc-link: https://developers.intercom.io/docs/admins +description: | + The `{{ table.name }}` table contains info about the admins and teams in your {{ integration.display_name }} account. + +replication-method: "Full Table" +api-method: + name: listAdmins + doc-link: https://developers.intercom.io/docs/list-admins + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The admin or team ID." + foreign-key-id: "admin-id" + + - name: "type" + type: "string" + description: "The admin type. This value will be either `admin` or `team`." + + - name: "name" + type: "string" + description: "The name of the admin or team." + + - name: "email" + type: "string" + description: "The email address of the admin. This will be `NULL` for teams." + + - name: "away_mode_enabled" + type: "boolean" + description: "Indicates if the admin is currently set in away mode." + + - name: "away_mode_reassign" + type: "boolean" + description: "Indicates if the admin is set to automatically reassign new conversations to the app's default inbox." + + - name: "team_ids" + type: "array" + description: "A list of the IDs of the teams the admin is a part of." + subattributes: + - name: "value" + type: "integer" + description: "The ID of the team the admin is a part of." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v02-02-2016/companies.md b/_integration-schemas/intercom/v02-02-2016/companies.md new file mode 100755 index 000000000..9544756f9 --- /dev/null +++ b/_integration-schemas/intercom/v02-02-2016/companies.md @@ -0,0 +1,106 @@ +--- +tap: "intercom" +version: "02-02-2016" + +name: "companies" +doc-link: https://developers.intercom.com/reference#companies +description: | + The `{{ table.name }}` table contains info about the companies (or commercial organizations) that use your {{ integration.display_name }} product. + + #### Custom Attributes + + If applicable, Stitch will replicate custom fields related to `{{ table.name }}` in Intercom. + +replication-method: "Key-based Incremental" +api-method: + name: scrollOverAllCompanies + doc-link: https://developers.intercom.com/reference#iterating-over-all-companies + +attribution-window: true + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The Intercom-defined company ID." + foreign-key-id: "company-id" + + - name: "updated_at" + type: "date-time" + replication-key: true + description: "The time the company was last updated." + + - name: "company_id" + type: "string" + description: "The ID that you assigned to the company." + + - name: "created_at" + type: "date-time" + description: "The time the company was added to Intercom." + + - name: "remote_created_at" + type: "date-time" + description: "The time the company was created by you." + + - name: "name" + type: "string" + description: "The name of the company." + + - name: "custom_attributes" + type: "object" + description: "If applicable, the custom attributes you've applied to the company." + + - name: "session_count" + type: "integer" + description: "The number of recorded sessions for the company." + + - name: "monthly_spend" + type: "number" + description: "The amount of revenue the company generates for your business." + + - name: "user_count" + type: "number" + description: "The number of users in the company." + + - name: "plan" + type: "string" + description: "The name of the plan associated with the company." + + - name: "type" + type: "string" + description: "The value of this field will be `company`." + + - name: "segments" + type: "array" + description: "A list of the IDs of the segments associated with the company." + subattributes: + - name: "segments" + type: "array" + description: "A list of the IDs of the segments associated with the company." + subattributes: + - name: "id" + type: "string" + description: "The segment ID." + foreign-key-id: "segment-id" + + - name: "type" + type: "string" + description: "The value of this field will be `segment`." + + - name: "tags" + type: "array" + description: "A list of the IDs of the tags associated with the company." + subattributes: + - name: "tags" + type: "array" + description: "A list of the IDs of the tags associated with the company." + subattributes: + - name: "id" + type: "string" + description: "The tag ID." + foreign-key-id: "tag-id" + + - name: "type" + type: "string" + description: "The value of this field will be `tag`." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v02-02-2016/company_segments.md b/_integration-schemas/intercom/v02-02-2016/company_segments.md new file mode 100755 index 000000000..a6219874e --- /dev/null +++ b/_integration-schemas/intercom/v02-02-2016/company_segments.md @@ -0,0 +1,43 @@ +--- +tap: "intercom" +version: "02-02-2016" + +name: "company_segments" +doc-link: https://developers.intercom.io/docs/companies +description: | + The `{{ table.name }}` table contains info about company segments. A segment is a group of users that are defined by a set of rules. + +replication-method: "Full Table" +api-method: + name: listSegments + doc-link: https://developers.intercom.io/docs/list-segments + +attribution-window: true + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The segment ID." + foreign-key-id: "company-segment-id" + + - name: "updated_at" + type: "date-time" + description: "The time the segment was last updated." + + - name: "created_at" + type: "date-time" + description: "The time the segment was created." + + - name: "name" + type: "string" + description: "The name of the segment." + + - name: "person_type" + type: "string" + description: "The type of record. This will either be `user` or `lead`." + + - name: "type" + type: "string" + description: "The value of this field will be `segment`." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v02-02-2016/contacts.md b/_integration-schemas/intercom/v02-02-2016/contacts.md new file mode 100755 index 000000000..f252c90c2 --- /dev/null +++ b/_integration-schemas/intercom/v02-02-2016/contacts.md @@ -0,0 +1,216 @@ +--- +tap: "intercom" +version: "02-02-2016" + +name: "contacts" +doc-link: https://developers.intercom.com/reference#leads +description: | + The `{{ table.name }}` table contains info about the logged-out users, or leads, of your {{ integration.display_name }} app. + + **Note**: `contacts` is equivalent to the `leads` object in {{ integration.display_name }}'s API. See [{{ integration.display_name }}'s documentation](https://developers.intercom.com/reference#leads){:target="new"} for more info. + + #### Custom Attributes + + If applicable, Stitch will replicate custom fields related to `contacts` (leads) in {{ integration.display_name }}. + +replication-method: "Key-based Incremental" +api-method: + name: listLeads + doc-link: https://developers.intercom.com/reference#list-leads + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The lead's Intercom-defined ID." + foreign-key-id: "contact-id" + + - name: "updated_at" + type: "date-time" + replication-key: true + description: "The time the lead was last updated." + + - name: "created_at" + type: "date-time" + description: "The time the lead was added to Intercom." + + - name: "user_id" + type: "string" + description: "An Intercom-generated ID for the lead." + + - name: "email" + type: "string" + description: "The email associated with the lead." + + - name: "phone" + type: "string" + description: "The phone number associated with the lead." + + - name: "name" + type: "string" + description: "The name of the lead." + + - name: "last_request_at" + type: "date-time" + description: "The time the lead last made a request." + + - name: "avatar" + type: "object" + description: "Details about the avatar associated with the lead." + subattributes: + - name: "image_url" + type: "string" + description: "The URL of the avatar image associated with the lead." + + - name: "type" + type: "string" + description: "The value of this field will be `avatar`." + + - name: "unsubscribed_from_emails" + type: "boolean" + description: "Indicates if the lead is unsubscribed from emails." + + - name: "location_data" + type: "object" + description: "Details about the lead's location." + subattributes: + - name: "city_name" + type: "string" + description: "The name of the city associated with the lead's location." + + - name: "continent_code" + type: "string" + description: "The continent code associated with the lead's location." + + - name: "country_code" + type: "string" + description: "The country code associated with the lead's location." + + - name: "country_name" + type: "string" + description: "The name of the country associated with the lead's location." + + - name: "latitude" + type: "integer" + description: "The latitude associated with the lead's location." + + - name: "longitude" + type: "integer" + description: "The longitude associated with the lead's location." + + - name: "postal_code" + type: "string" + description: "The postal code associated with the lead's location." + + - name: "region_name" + type: "string" + description: "The name of the region associated with the lead's location." + + - name: "timezone" + type: "string" + description: "The ISO 8601 timezone associated with the lead's location." + + - name: "type" + type: "string" + description: "The value of this field will be `location_data`." + + - name: "user_agent_data" + type: "string" + description: "Data about the last user agent the lead was seen using." + + - name: "last_seen_ip" + type: "string" + description: "The IP address the lead last visited your application from." + + - name: "companies" + type: "array" + description: "Details about the companies the lead is associated with." + subattributes: + - name: "companies" + type: "array" + description: "Details about the companies the lead is associated with." + subattributes: + - name: "id" + type: "string" + description: "The Intercom-defined company ID." + foreign-key-id: "company-id" + + - name: "company_id" + type: "string" + description: "The ID that you assigned to the company." + + - name: "name" + type: "string" + description: "The name of the company." + + - name: "type" + type: "string" + description: "The value of this field will be `company`." + + - name: "social_profiles" + type: "array" + description: "Details about the social profiles the lead is associated with." + subattributes: + - name: "social_profiles" + type: "array" + description: "Details about the social profiles the lead is associated with." + subattributes: + - name: "id" + type: "string" + primary-key: true + description: "The lead's user ID on the social platform." + + - name: "name" + type: "string" + description: "The name of the social service. Ex: `facebook`" + + - name: "url" + type: "string" + description: "The lead's user homepage on the social platform." + + - name: "username" + type: "string" + description: "The lead's username on the social platform." + + - name: "type" + type: "string" + description: "The value of this field will be `social_profile`." + + - name: "segments" + type: "array" + description: "Details about the segments the lead is associated with." + subattributes: + - name: "segments" + type: "array" + description: "Details about the segments the lead is associated with." + subattributes: + - name: "id" + type: "string" + description: "The segment ID." + foreign-key-id: "segment-id" + + - name: "type" + type: "string" + description: "The value of this field will be `segment`." + + - name: "tags" + type: "array" + description: "Details about the tags the lead is associated with." + subattributes: + - name: "tags" + type: "array" + description: "Details about the tags the lead is associated with." + subattributes: + - name: "id" + type: "string" + description: "The tag ID." + foreign-key-id: "tag-id" + + - name: "name" + type: "string" + description: "The name of the tag." + + - name: "type" + type: "string" + description: "The value of this field will be `tag`." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v02-02-2016/conversations.md b/_integration-schemas/intercom/v02-02-2016/conversations.md new file mode 100755 index 000000000..b81e3945a --- /dev/null +++ b/_integration-schemas/intercom/v02-02-2016/conversations.md @@ -0,0 +1,292 @@ +--- +tap: "intercom" +version: "02-02-2016" + +name: "conversations" +doc-link: https://developers.intercom.com/reference#conversations +description: | + The `{{ table.name }}` table contains info about user conversations, or conversations initiated by your end-users. + + #### Conversation Parts + To reconstruct an entire conversation, use the `conversation_parts` associated with the conversation. These are the individual elements - actions, messages, and so on - that make up a conversation. + + If your destination doesn't natively support nested data structures, a subtable named `conversations__conversation_parts` will be created. More info on this table can be found below. + +replication-method: "Key-based Incremental" +api-method: + name: listConversations + doc-link: https://developers.intercom.io/docs/list-conversations +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The conversation ID." + # foreign-key-id: "conversation-id" + + - name: "updated_at" + type: "date-time" + replication-key: true + description: "The time the conversation was last updated." + + - name: "created_at" + type: "date-time" + description: "The time the conversation was created." + + - name: "waiting_since" + type: "date-time" + description: | + An epoch timestamp that indicates the last time a customer responded to an admin, or the time a customer started waiting for a response. + + **Note**: According to [{{ integration.display_name }}'s documentation](https://developers.intercom.com/reference#conversation-model), this field may sometimes contain a value that is 2000 years in the future. This can occur when the last person to respond was an admin or when the conversation was closed aver a customer response. + + - name: "snoozed_until" + type: "date-time" + description: "If set, this is the time in the future that the conversation will be marked as `open`." + + - name: "state" + type: "string" + description: | + The current state of the conversation. Possible values are: + + - `open` + - `closed` + - `snoozed` + + - name: "conversation_message" + type: "object" + description: "Details about the message that started the conversation." + doc-link: https://developers.intercom.com/reference#section-message-object + subattributes: + - name: "subject" + type: "string" + description: "The conversation message subject, or the subject of the message that started the conversation." + + - name: "body" + type: "string" + description: "The conversation message body, which may contain HTML. This is the body of the message that started the conversation." + + - name: "author" + type: "object" + description: "Details about the user that created the conversation message." + subattributes: + - name: "id" + type: "string" + description: | + The ID of the user who created the conversation message. + + Depending on the user's `type`, this will be a foreign key to the `users` or `admins` table. + foreign-key-id: "author-id" + + - name: "type" + type: "string" + description: | + The type of user that created the conversation message. Possible values are: + + - `user` + - `lead` + - `admin` + + - name: "attachments" + type: "array" + description: "Details about the attachments, if any, that are a part of the conversation message." + subattributes: + - name: "url" + type: "string" + description: "The attachment URL." + + - name: "name" + type: "string" + description: "The name of the attachment. Ex: `image001.png`, `presentation.pdf`" + + - name: "content_type" + type: "string" + description: "The content type of the attachment. Ex: `image/png`, `application/pdf`" + + - name: "height" + type: "integer" + description: "For image attachments, the height of the image." + + - name: "width" + type: "integer" + description: "For image attachments, the width of the image." + + - name: "filesize" + type: "integer" + description: "The file size of the attachment." + + - name: "type" + type: "string" + description: "The value of this field will be `upload`." + + - name: "type" + type: "string" + description: "The value of this field will be `conversation_message`." + + - name: "conversation_parts" + type: "array" + description: "Details about the individual elements that make up the conversation." + subattributes: + - name: "id" + type: "string" + primary-key: true + description: "The conversation part ID." + + - name: "part_type" + type: "string" + description: | + The type of conversation part. Possible values are: + + - `comment` - A standard reply from a user or admin. + - `note` - Created by and only viewable to an admin. + - `assignment` - Assignment of the conversation to an admin or nobody. Viewable only to an admin. + - `open` - Opens the conversation. Viewable only to an admin. + - `close` - Closes the conversation. Viewable only to an admin. + + - name: "body" + type: "string" + description: "The HTML-encoded body of the conversation part." + + - name: "created_at" + type: "date-time" + description: "The time the conversation part was created." + + - name: "updated_at" + type: "date-time" + description: "The time the conversation part was last updated." + + - name: "assigned_to" + type: "string" + description: "For `assignment` types only: the ID of the admin that the conversation is assigned to." + foreign-key-id: "admin-id" + + - name: "author" + type: "object" + description: "Details about the admin or user that created the conversation part." + subattributes: + - name: "id" + type: "string" + description: "The ID of the admin or user that created the conversation part." + foreign-key-id: "author-id" + + - name: "type" + type: "string" + description: "The type of user that created the conversation part." + + - name: "attachments" + type: "array" + description: "Details about the attachments, if any, that are a part of the conversation part." + subattributes: + - name: "url" + type: "string" + description: "The attachment URL." + + - name: "name" + type: "string" + description: "The name of the attachment. Ex: `image001.png`, `presentation.pdf`" + + - name: "content_type" + type: "string" + description: "The content type of the attachment. Ex: `image/png`, `application/pdf`" + + - name: "height" + type: "integer" + description: "For image attachments, the height of the image." + + - name: "width" + type: "integer" + description: "For image attachments, the width of the image." + + - name: "filesize" + type: "integer" + description: "The file size of the attachment." + + - name: "type" + type: "string" + description: "The value of this field will be `upload`." + + - name: "total_count" + type: "integer" + description: "The total number of conversation parts in the conversation." + + - name: "user" + type: "object" + description: "Details about the user or lead involved in the conversation." + subattributes: + - name: "id" + type: "string" + description: "The ID of the user or lead involved in the conversation." + foreign-key-id: "user-id" + + - name: "type" + type: "string" + description: | + The type of user involved in the conversation. Possible values include: + + - `lead` + - `user` + + - name: "assignee" + type: "object" + description: "Details about the admin assigned to the conversation." + subattributes: + - name: "id" + type: "string" + description: "The ID of the admin that the conversation is assigned to." + foreign-key-id: "admin-id" + + - name: "type" + type: "string" + description: | + The type of admin the conversation is assigned to. Possible values are: + + - `nobody_admin` - Indicates the conversation is assigned to _Nobody_. + - `admin` - Indicates the conversation is assigned to an admin. + + - name: "customers" + type: "array" + description: "Details about the customers (users or leads) involved in the conversation." + subattributes: + - name: "id" + type: "string" + primary-key: true + description: "The user's ID." + foreign-key-id: "user-id" + + - name: "type" + type: "string" + description: "The value of this field will be `user`." + + - name: "open" + type: "boolean" + description: "Indicates whether a conversation is open (`true`) or closed (`false`)." + + - name: "read" + type: "boolean" + description: "Indicates whether a conversation has been read." + + - name: "tags" + type: "array" + description: "The tags associated with the conversation." + subattributes: + - name: "tags" + type: "array" + description: "The tags associated with the conversation." + subattributes: + - name: "id" + type: "string" + primary-key: true + description: "The tag ID." + foreign-key-id: "tag-id" + + - name: "name" + type: "string" + description: "The name of the tag." + + - name: "type" + type: "string" + description: "The value of this field will be `tag`." + + - name: "type" + type: "string" + description: "The value of this field will be `conversation`." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v02-02-2016/foreign-keys.md b/_integration-schemas/intercom/v02-02-2016/foreign-keys.md new file mode 100644 index 000000000..3bb37b7dc --- /dev/null +++ b/_integration-schemas/intercom/v02-02-2016/foreign-keys.md @@ -0,0 +1,103 @@ +--- +tap-reference: "intercom" + +version: "02-02-2016" + +foreign-keys: + - id: "admin-id" + attribute: "id" + table: "admins" + all-foreign-keys: + - table: "admins" + join-on: "id" + - table: "conversations" + subtable: "conversation_parts" + join-on: "assigned_to" + - table: "conversations" + subattribute: "assignee" + + - id: "author-id" + attribute: "id" + table: "authors" + all-foreign-keys: + - table: "admins" + - table: "contacts" + - table: "users" + - table: "conversations" + subtable: "conversation_parts__author" + + - id: "company-id" + attribute: "id" + table: "companies" + all-foreign-keys: + - table: "companies" + join-on: "id" + - table: "contacts" + subtable: "companies" + join-on: "id" + - table: "users" + subtable: "companies" + + - id: "company-segment-id" + attribute: "id" + table: "company_segments" + all-foreign-keys: + - table: "company_segments" + join-on: "id" + - table: "contacts" + subtable: "segments" + join-on: "id" + + - id: "contact-id" + attribute: "id" + table: "contacts" + all-foreign-keys: + - table: "contacts" + join-on: "id" + - table: "conversations" + subattribute: "user" + + - id: "conversation-id" + attribute: "id" + table: "conversations" + all-foreign-keys: + - table: "conversations" + join-on: "id" + + - id: "segment-id" + attribute: "id" + table: "segments" + all-foreign-keys: + - table: "companies" + subtable: "segments__segments" + - table: "contacts" + subtable: "segments__segments" + - table: "segments" + - table: "users" + subtable: "segments__segments" + + - id: "tag-id" + attribute: "id" + table: "tags" + all-foreign-keys: + - table: "companies" + subtable: "tags__tags" + - table: "contacts" + subtable: "tags__tags" + - table: "conversations" + subtable: "tags__tags" + - table: "tags" + - table: "users" + subtable: "tags__tags" + + - id: "user-id" + attribute: "id" + table: "users" + all-foreign-keys: + - table: "users" + - table: "contacts" + - table: "conversations" + subattribute: "user" + - table: "conversations" + subtable: "customers" +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v02-02-2016/segments.md b/_integration-schemas/intercom/v02-02-2016/segments.md new file mode 100755 index 000000000..aa46b877d --- /dev/null +++ b/_integration-schemas/intercom/v02-02-2016/segments.md @@ -0,0 +1,41 @@ +--- +tap: "intercom" +version: "02-02-2016" + +name: "segments" +doc-link: https://developers.intercom.com/reference#segments +description: | + The `{{ table.name }}` table contains info about the segments - or groups of users defined by a set of rules - in your {{ integration.display_name }} account. + +replication-method: "Full Table" +api-method: + name: listSegments + doc-link: https://developers.intercom.io/docs/list-segments + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The segment ID." + foreign-key-id: "segment-id" + + - name: "updated_at" + type: "date-time" + description: "The time the segment was last updated." + + - name: "created_at" + type: "date-time" + description: "The time the segment was created." + + - name: "name" + type: "string" + description: "The name of the segment." + + - name: "person_type" + type: "string" + description: "The type of record. This will either be `user` or `lead`." + + - name: "type" + type: "string" + description: "The value of this field will be `segment`." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v02-02-2016/tags.md b/_integration-schemas/intercom/v02-02-2016/tags.md new file mode 100755 index 000000000..af902b115 --- /dev/null +++ b/_integration-schemas/intercom/v02-02-2016/tags.md @@ -0,0 +1,29 @@ +--- +tap: "intercom" +version: "02-02-2016" + +name: "tags" +doc-link: https://developers.intercom.io/docs/tags +description: | + The `{{ table.name }}` table contains info about the tags in your {{ integration.display_name }} account. + +replication-method: "Full Table" +api-method: + name: listTags + doc-link: https://developers.intercom.io/docs/list-tags + +attributes: + - name: "id" + primary-key: true + type: "string" + description: "The tag ID." + foreign-key-id: "tag-id" + + - name: "name" + type: "string" + description: "The name of the tag." + + - name: "type" + type: "string" + description: "The value of this field will be `tag`." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v02-02-2016/users.md b/_integration-schemas/intercom/v02-02-2016/users.md new file mode 100755 index 000000000..ec2e56ef7 --- /dev/null +++ b/_integration-schemas/intercom/v02-02-2016/users.md @@ -0,0 +1,233 @@ +--- +tap: "intercom" +version: "02-02-2016" + +name: "users" +doc-link: https://developers.intercom.io/docs/users +description: | + The `{{ table.name }}` table contains info about the users in your {{ integration.display_name }} account. + + #### Custom Attributes + + If applicable, Stitch will replicate custom fields related to `users` in {{ integration.display_name }}. + +replication-method: "Key-based Incremental" +api-method: + name: List Users + doc-link: https://developers.intercom.com/intercom-api-reference/reference#list-users + +attribution-window: true + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The user ID." + foreign-key-id: "user-id" + + - name: "updated_at" + replication-key: true + type: "date-time" + description: "The time the user was last updated." + + - name: "created_at" + type: "date-time" + description: "The time the user was added to Intercom." + + - name: "signed_up_at" + type: "date-time" + description: "The time the user signed up." + + - name: "email" + type: "string" + description: "The email address associated with the user." + + - name: "name" + type: "string" + description: "The full name of the user." + + - name: "phone" + type: "string" + description: "The phone number associated with the user." + + - name: "last_request_at" + type: "date-time" + description: "The time the user last made a request." + + - name: "session_count" + type: "integer" + description: "The number of sessions recorded for the user." + + - name: "avatar" + type: "object" + description: "Details about the avatar associated with the user." + subattributes: + - name: "image_url" + type: "string" + description: "The URL of the avatar image associated with the user." + + - name: "type" + type: "string" + description: "The value of this field will be `avatar`." + + - name: "unsubscribed_from_emails" + type: "boolean" + description: "Indicates if the user is unsubscribed from emails." + + - name: "location_data" + type: "object" + description: "Details about the user's location." + subattributes: + - name: "city_name" + type: "string" + description: "The name of the city associated with the user's location." + + - name: "continent_code" + type: "string" + description: "The continent code associated with the user's location." + + - name: "country_code" + type: "string" + description: "The country code associated with the user's location." + + - name: "country_name" + type: "string" + description: "The name of the country associated with the user's location." + + - name: "latitude" + type: "integer" + description: "The latitude associated with the user's location." + + - name: "longitude" + type: "integer" + description: "The longitude associated with the user's location." + + - name: "postal_code" + type: "string" + description: "The postal code associated with the user's location." + + - name: "region_name" + type: "string" + description: "The name of the region associated with the user's location." + + - name: "timezone" + type: "string" + description: "The ISO 8601 timezone associated with the user's location." + + - name: "type" + type: "string" + description: "The value of this field will be `location_data`." + + - name: "user_agent_data" + type: "string" + description: "Data about the last user agent the user was seen using." + + - name: "last_seen_ip" + type: "string" + description: "The IP address the user last visited your application from." + + - name: "pseudonym" + type: "string" + description: "If the user was previously a lead, this field will contain the pseudonym used. Ex: `Pink Giraffe`" + + - name: "anonymous" + type: "boolean" + description: "Indicates if the user is a lead. This will always be `false`." + + - name: "companies" + type: "array" + description: "Details about the companies the user is associated with." + subattributes: + - name: "companies" + type: "array" + description: "Details about the company the user is associated with." + subattributes: + - name: "id" + type: "string" + description: "The Intercom-defined company ID." + foreign-key-id: "company-id" + + - name: "company_id" + type: "string" + description: "The ID that you assigned to the company." + + - name: "name" + type: "string" + description: "The name of the company." + + - name: "type" + type: "string" + description: "The value of this field will be `company`." + + - name: "social_profiles" + type: "array" + description: "Details about the social profiles the user is associated with." + subattributes: + - name: "social_profiles" + type: "array" + description: "Details about the social profiles the user is associated with." + subattributes: + - name: "id" + type: "string" + primary-key: true + description: "The user's user ID on the social platform." + + - name: "name" + type: "string" + description: "The name of the social service. Ex: `facebook`" + + - name: "url" + type: "string" + description: "The user's user homepage on the social platform." + + - name: "username" + type: "string" + description: "The user's username on the social platform." + + - name: "type" + type: "string" + description: "The value of this field will be `social_profile`." + + - name: "segments" + type: "array" + description: "Details about the segments the user is associated with." + subattributes: + - name: "segments" + type: "array" + description: "Details about the segments the user is associated with." + subattributes: + - name: "id" + type: "string" + primary-key: true + description: "The segment ID." + foreign-key-id: "segment-id" + + - name: "type" + type: "string" + description: "The value of this field will be `segment`." + + - name: "tags" + type: "array" + description: "Details about the tags the user is associated with." + subattributes: + - name: "tags" + type: "array" + description: "Details about the tags the user is associated with." + subattributes: + - name: "id" + type: "string" + description: "The tag ID." + foreign-key-id: "tag-id" + + - name: "name" + type: "string" + description: "The name of the tag." + + - name: "type" + type: "string" + description: "The value of this field will be `tag`." + + - name: "type" + type: "string" + description: "The value of this field will be `user`." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v1/admins.md b/_integration-schemas/intercom/v1/admins.md new file mode 100644 index 000000000..fbaa06afd --- /dev/null +++ b/_integration-schemas/intercom/v1/admins.md @@ -0,0 +1,77 @@ +--- +tap: "intercom" +version: "1" +key: "admin" + +name: "admins" +doc-link: "https://developers.intercom.com/intercom-api-reference/reference#admin-model" +singer-schema: "https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/admins.json" +description: | + The `{{ table.name }}` table lists info about the admins in your {{ integration.display_name }} account. An admin is a user, or teammate, in your {{ integration.display_name }} account. + +replication-method: "Full Table" + +api-method: + name: "List all admins" + doc-link: "https://developers.intercom.com/intercom-api-reference/reference#list-admins" + +attributes: + - name: "id" + type: "integer" + primary-key: true + description: "The admin ID." + foreign-key-id: "admin-id" + + - name: "admin_ids" + type: "array" + description: "" + subattributes: + - name: "value" + type: "integer" + description: "" + + - name: "avatar" + type: "object" + description: "The admin's avatar." + subattributes: + - name: "image_url" + type: "string" + description: "The URL to the admin's avatar." + + - name: "away_mode_enabled" + type: "boolean" + description: "Indicates if the admin is currently set in away mode." + + - name: "away_mode_reassign" + type: "boolean" + description: "Indicates if the admin is set to automatically reassign new conversations to the app's default inbox." + + - name: "email" + type: "string" + description: "The email address of the admin." + + - name: "has_inbox_seat" + type: "boolean" + description: "Indicates if the admin has a paid inbox seat to restrict/allow features." + + - name: "job_title" + type: "string" + description: "The job title of the admin." + + - name: "name" + type: "string" + description: "The name of the admin." + + - name: "team_ids" + type: "array" + description: "The IDs of the teams the admin is a member of." + subattributes: + - name: "value" + type: "integer" + description: "" + foreign-key-id: "team-id" + + - name: "type" + type: "string" + description: "This will be `admin`." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v1/companies.md b/_integration-schemas/intercom/v1/companies.md new file mode 100644 index 000000000..5f0906fe6 --- /dev/null +++ b/_integration-schemas/intercom/v1/companies.md @@ -0,0 +1,115 @@ +--- +tap: "intercom" +version: "1" +key: "company" + +name: "companies" +doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#company-model" +singer-schema: "https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/companies.json" +description: | + The `{{ table.name }}` table contains info about companies that use your {{ integration.display_name }} product. + + #### Custom Attributes + + If applicable, Stitch will replicate custom fields related to `{{ table.name }}` in {{ integration.display_name }}. + +replication-method: "Key-based Incremental" + +api-method: + name: "Scroll over all companies" + doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#iterating-over-all-companies" + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The {{ integration.display_name }}-generated company ID." + foreign-key-id: "company-id" + + - name: "updated_at" + type: "date-time" + description: "The time the company was last updated." + replication-key: true + + - name: "company_id" + type: "string" + description: "The ID for the company, as defined by you." + + - name: "created_at" + type: "date-time" + description: "The time the company was added to {{ integration.display_name }}." + + - name: "custom_attributes" + type: "object" + description: "If applicable, the custom attributes you've applied to the company." + + - name: "industry" + type: "string" + description: "The industry the company operates in." + + - name: "monthly_spend" + type: "number" + description: "The amount of revenue the company generates for your business." + + - name: "name" + type: "string" + description: "The name of the company." + + - name: "plan" + type: "object" + description: "The name of the plan associated with the company." + subattributes: + - name: "id" + type: "string" + description: "The plan ID." + + - name: "name" + type: "string" + description: "The name of the plan." + + - name: "type" + type: "string" + description: "This will be `plan`." + + - name: "remote_created_at" + type: "date-time" + description: "The time the company was created, as a Unix timestamp." + + - name: "segments" + type: "array" + description: "A list of segments within a company." + subattributes: + - name: "id" + type: "string" + description: "The segment ID." + foreign-key-id: "segment-id" + + - name: "session_count" + type: "integer" + description: "The number of recorded sessions for the company." + + - name: "size" + type: "integer" + description: "The number of employees in the company." + + - name: "tags" + type: "array" + description: "A list of tags within a company." + subattributes: + - name: "id" + type: "string" + description: "The tag ID." + foreign-key-id: "tag-id" + + - name: "type" + type: "string" + description: "This will be `company`." + + - name: "user_count" + type: "integer" + description: "The number of users in the company." + + - name: "website" + type: "string" + description: "The URL for the company's website." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v1/company_attributes.md b/_integration-schemas/intercom/v1/company_attributes.md new file mode 100644 index 000000000..a843db555 --- /dev/null +++ b/_integration-schemas/intercom/v1/company_attributes.md @@ -0,0 +1,89 @@ +--- +tap: "intercom" +version: "1" +key: "company-attribute" + +name: "company_attributes" +doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#data-attribute-model" +singer-schema: "https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/company_attributes.json" +description: | + The `{{ table.name }}` lists data attributes for a specified company in your {{ integration.display_name }} account. + +replication-method: "Full Table" + +api-method: + name: "List all data attributes" + doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#list-data-attributes" + +attributes: + - name: "name" + type: "string" + primary-key: true + description: "The name of the attribute." + foreign-key-id: "attribute-name" + + - name: "admin_id" + type: "integer" + description: "The ID of the admin that created the attribute." + foreign-key-id: "admin-id" + + - name: "api_writable" + type: "boolean" + description: "Indicates if the attribute can be updated via {{ integration.display_name }}'s API." + + - name: "archived" + type: "boolean" + description: "Indicates if the attribute is archived." + + - name: "created_at" + type: "date-time" + description: "The time the attribute was created." + + - name: "custom" + type: "boolean" + description: "" + + - name: "data_type" + type: "string" + description: | + The type of data stored for the attribute. Possible values are: + + - `string` + - `fixnum` + - `float` + - `boolean` + - `date` + - `options` + + - name: "description" + type: "string" + description: "The description for the attribute." + + - name: "full_name" + type: "string" + description: "" + + - name: "label" + type: "string" + description: "The name of the attribute." + + - name: "options" + type: "array" + description: "The pre-defined options for the attribute." + subattributes: + - name: "value" + type: "varies" + description: "" + + - name: "type" + type: "string" + description: "This will be `data_attribute`." + + - name: "ui_writable" + type: "boolean" + description: "Indicates if the attribute can be updated via {{ integration.display_name }}'s UI." + + - name: "updated_at" + type: "date-time" + description: "The last time the attribute was updated." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v1/company_segments.md b/_integration-schemas/intercom/v1/company_segments.md new file mode 100644 index 000000000..df373a44a --- /dev/null +++ b/_integration-schemas/intercom/v1/company_segments.md @@ -0,0 +1,45 @@ +--- +tap: "intercom" +version: "1" +key: "company-segment" + +name: "company_segments" +doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#company-model" +singer-schema: "https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/company_segments.json" +description: | + The `{{ table.name }}` table contains information about company segments in your {{ integration.display_name }} account. + +replication-method: "Key-based Incremental" + +api-method: + name: "List all segments" + doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#list-segments" + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The company segment ID." + # foreign-key-id: "company-segment-id" + + - name: "updated_at" + type: "date-time" + description: "The time the company segment was last updated." + replication-key: true + + - name: "count" + type: "integer" + description: "" + + - name: "created_at" + type: "date-time" + description: "The time the company segment was created." + + - name: "name" + type: "string" + description: "The name of the segment." + + - name: "type" + type: "string" + description: "The value of this field will be `segment`." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v1/contact_attributes.md b/_integration-schemas/intercom/v1/contact_attributes.md new file mode 100644 index 000000000..ce8a55bf3 --- /dev/null +++ b/_integration-schemas/intercom/v1/contact_attributes.md @@ -0,0 +1,89 @@ +--- +tap: "intercom" +version: "1" +key: "contact-attribute" + +name: "contact_attributes" +doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#data-attribute-model" +singer-schema: "https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/contact_attributes.json" +description: | + The `{{ table.name }}` table contains information about contact attributes in your {{ integration.display_name }} account. + +replication-method: "Full Table" + +api-method: + name: "List all data attributes" + doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#list-data-attributes" + +attributes: + - name: "name" + type: "string" + primary-key: true + description: "The name of the attribute." + foreign-key-id: "contact-attribute-name" + + - name: "admin_id" + type: "integer" + description: "The ID of the admin that created the attribute." + foreign-key-id: "admin-id" + + - name: "api_writable" + type: "boolean" + description: "Indicates if the attribute can be updated via {{ integration.display_name }}'s API." + + - name: "archived" + type: "boolean" + description: "Indicates if the attribute is archived." + + - name: "created_at" + type: "date-time" + description: "The time the attribute was created." + + - name: "custom" + type: "boolean" + description: "" + + - name: "data_type" + type: "string" + description: | + The type of data stored for the attribute. Possible values are: + + - `string` + - `fixnum` + - `float` + - `boolean` + - `date` + - `options` + + - name: "description" + type: "string" + description: "The description for the attribute." + + - name: "full_name" + type: "string" + description: "" + + - name: "label" + type: "string" + description: "The name of the attribute." + + - name: "options" + type: "array" + description: "The pre-defined options for the attribute." + subattributes: + - name: "value" + type: "varies" + description: "" + + - name: "type" + type: "string" + description: "This will be `data_attribute`." + + - name: "ui_writable" + type: "boolean" + description: "Indicates if the attribute can be updated via {{ integration.display_name }}'s UI." + + - name: "updated_at" + type: "date-time" + description: "The last time the attribute was updated." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v1/contacts.md b/_integration-schemas/intercom/v1/contacts.md new file mode 100644 index 000000000..c3e87c7c0 --- /dev/null +++ b/_integration-schemas/intercom/v1/contacts.md @@ -0,0 +1,336 @@ +--- +tap: "intercom" +version: "1" +key: "contact" + +name: "contacts" +doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#contacts-model" +singer-schema: "https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/contacts.json" +description: | + The `{{ table.name }}` table contains info about users and leads in your {{ integration.display_name }} account. + + #### Custom attributes + + If applicable, Stitch will replicate custom fields related to `{{ table.name }}` in {{ integration.display_name }}. + +replication-method: "Key-based Incremental" + +api-method: + name: "List all contacts" + doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#list-contacts" + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The contact ID." + foreign-key-id: "contact-id" + + - name: "updated_at" + type: "date-time" + replication-key: true + description: "The time the contact was last updated." + + - name: "android_app_name" + type: "string" + description: "The name of the Android app the contact is using, if applicable." + + - name: "android_app_version" + type: "string" + description: "The version of the Android app the contact is using, if applicable." + + - name: "android_device" + type: "string" + description: "The Android device the contact is using, if applicable." + + - name: "android_last_seen_at" + type: "date-time" + description: "The last time the contact used the Android app, if applicable." + + - name: "android_os_version" + type: "string" + description: "The version of the Android OS the contact is using, if applicable." + + - name: "android_sdk_version" + type: "string" + description: "The version of the Android SDK the contact is using, if applicable." + + - name: "avatar" + type: "string" + description: "" + + - name: "browser" + type: "string" + description: "The name of the browser the contact is using." + + - name: "browser_language" + type: "string" + description: "The language set by the browser the contact is using." + + - name: "browser_version" + type: "string" + description: The version of the browser the contact is using." + + - name: "companies" + type: "object" + description: "Details about the company the contact is associated with." + subattributes: + - name: "data" + type: "array" + description: "Details about the company the contact is associated with." + subattributes: + - name: "id" + type: "string" + description: "The {{ integration.display_name }}-defined company ID." + foreign-key-id: "company-id" + + - name: "type" + type: "string" + description: "This will be `company`." + + - name: "url" + type: "string" + description: "" + + - name: "has_more" + type: "boolean" + description: "" + + - name: "total_count" + type: "integer" + description: "" + + - name: "type" + type: "string" + description: "This will be `list`." + + - name: "url" + type: "string" + description: "" + + - name: "created_at" + type: "date-time" + description: "The time the contact was created." + + - name: "custom_attributes" + type: "object" + description: "The custom attributes set for the contact." + + - name: "email" + type: "string" + description: "The email associated with the lead." + + - name: "external_id" + type: "string" + description: "The unique ID for the contact." + + - name: "has_hard_bounced" + type: "boolean" + description: "Indicates whether the contact has had an email sent to them hard bounce." + + - name: "ios_app_name" + type: "string" + description: "The name of the iOS app the contact is using, if applicable." + + - name: "ios_app_version" + type: "string" + description: "The version of the iOS app the contact is using, if applicable." + + - name: "ios_device" + type: "string" + description: "The iOS device the contact is using, if applicable." + + - name: "ios_last_seen_at" + type: "date-time" + description: "The last time the contact used the iOS app, if applicable." + + - name: "ios_os_version" + type: "string" + description: "The version of the iOS OS the contact is using, if applicable." + + - name: "ios_sdk_version" + type: "string" + description: "The version of the iOS SDK the contact is using, if applicable." + + - name: "language_override" + type: "string" + description: "The preferred language setting for the contact." + + - name: "last_contacted_at" + type: "date-time" + description: "The time when the contact was last messaged." + + - name: "last_email_clicked_at" + type: "date-time" + description: "The time when the contact last clicked a link in an email sent to them, as a Unix timestamp." + + - name: "last_email_opened_at" + type: "date-time" + description: "The time when the contact last opened an email sent to them, as a Unix timestamp." + + - name: "last_replied_at" + type: "date-time" + description: "The time when the contact last sent a message, as a Unix timestamp." + + - name: "last_seen_at" + type: "date-time" + description: "The time the contact was last seen, as a Unix timestamp." + + - name: "location" + type: "object" + description: "Details about the contact's location." + subattributes: + - name: "city" + type: "string" + description: "The contact's city." + + - name: "country" + type: "string" + description: "The contact's country." + + - name: "region" + type: "string" + description: "The contact's region." + + - name: "type" + type: "string" + description: "This will be `location`." + + - name: "marked_email_as_spam" + type: "boolean" + description: "Indicates if the contact has marked an email sent to them as spam." + + - name: "name" + type: "string" + description: "The name of the lead." + + - name: "notes" + type: "object" + description: "The notes that have been added to the contact." + subattributes: + - name: "data" + type: "array" + description: "The notes that have been added to the contact." + subattributes: + - name: "id" + type: "string" + description: "The note ID." + + - name: "type" + type: "string" + description: "This will be `note`." + + - name: "url" + type: "string" + description: "" + + - name: "has_more" + type: "boolean" + description: "" + + - name: "total_count" + type: "integer" + description: "" + + - name: "type" + type: "string" + description: "This will be `list`." + + - name: "url" + type: "string" + description: "" + + - name: "os" + type: "string" + description: "The operating system the contact is using." + + - name: "owner_id" + type: "integer" + description: "The ID of the admin that has been assigned account ownership of the contact." + foreign-key-id: "admin-id" + + - name: "phone" + type: "string" + description: "The phone number associated with the lead." + + - name: "role" + type: "string" + description: "The role of the contact. This will be either `lead` or `user`." + + - name: "signed_up_at" + type: "date-time" + description: "The time when a contact signed up, as a Unix timestamp." + + - name: "social_profiles" + type: "object" + description: "Details about the social profiles the lead is associated with." + subattributes: + - name: "data" + type: "array" + description: "" + subattributes: + - name: "name" + type: "string" + description: "The name of the social service. Ex: `facebook`" + + - name: "type" + type: "string" + description: "This will be `social_profile`." + + - name: "url" + type: "string" + description: "The URL of the social profile." + + - name: "type" + type: "string" + description: "" + + - name: "tags" + type: "object" + description: "Details about the tags applied to the contact." + subattributes: + - name: "data" + type: "array" + description: "Details about the tags applied to the contact." + subattributes: + - name: "id" + type: "string" + description: "The ID of the tag." + foreign-key-id: "tag-id" + + - name: "type" + type: "string" + description: "This will be `tag`." + + - name: "url" + type: "string" + description: "" + + - name: "has_more" + type: "boolean" + description: "" + + - name: "total_count" + type: "integer" + description: "" + + - name: "type" + type: "string" + description: "This will be `list`." + + - name: "url" + type: "string" + description: "" + + - name: "type" + type: "string" + description: "This will be `contact`." + + - name: "unsubscribed_from_emails" + type: "boolean" + description: "Indicates if the contact has unsubscribed from emails." + + - name: "workspace_id" + type: "string" + description: "The ID of the workspace the contact is associated with." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v1/conversation_parts.md b/_integration-schemas/intercom/v1/conversation_parts.md new file mode 100644 index 000000000..35e7fa727 --- /dev/null +++ b/_integration-schemas/intercom/v1/conversation_parts.md @@ -0,0 +1,123 @@ +--- +tap: "intercom" +version: "1" +key: "conversation-part" + +name: "conversation_parts" +doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#conversation-model" +singer-schema: "https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/conversation_parts.json" +description: | + The `{{ table.name }}` table lists the individual parts of conversations in your {{ integration.display_name }} account. + + **Note**: When this table is replicated, all conversation parts associated with an updated conversation will be replicated. + +replication-method: "Full Table" + +api-method: + name: "Retrieve a conversation" + doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#retrieve-a-conversation" + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The conversation part ID." + # foreign-key-id: "part-id" + + - name: "assigned_to" + type: "string" + description: "The ID of the admin that the conversation part is assigned to." + foreign-key-id: "admin-id" + + - name: "attachments" + type: "array" + description: "Details about the attachments, if any, that are a part of the conversation part." + subattributes: + - name: "url" + type: "string" + description: "The attachment URL." + + - name: "name" + type: "string" + description: "The name of the attachment. Ex: `image001.png`, `presentation.pdf`" + + - name: "content_type" + type: "string" + description: "The content type of the attachment. Ex: `image/png`, `application/pdf`" + + - name: "height" + type: "integer" + description: "For image attachments, the height of the image." + + - name: "width" + type: "integer" + description: "For image attachments, the width of the image." + + - name: "filesize" + type: "integer" + description: "The file size of the attachment." + + - name: "type" + type: "string" + description: "The value of this field will be `upload`." + + - name: "author" + type: "object" + description: "Details about the admin or user that created the conversation part." + subattributes: + - name: "id" + type: "string" + description: | + The ID of the admin or end-user that created the conversation part. + + Depending on the author's `type`, this will be a foreign key to either the [`admins`](#admins) or [`contacts`](#contacts) table. + + - name: "type" + type: "string" + description: "The type of user that created the conversation part." + + - name: "body" + type: "string" + description: "The HTML-encoded body of the conversation part." + + - name: "conversation_created_at" + type: "date-time" + description: "The time the parent conversation associated with the part was created." + + - name: "conversation_id" + type: "string" + description: "The ID of the conversation associated with the part." + foreign-key-id: "conversation-id" + + - name: "conversation_total_parts" + type: "integer" + description: "The total number of conversation parts associated with the parent conversation." + + - name: "conversation_updated_at" + type: "date-time" + description: "The time the parent conversation associated with the part was last updated." + + - name: "created_at" + type: "date-time" + description: "The time the conversation part was created." + + - name: "external_id" + type: "string" + description: "" + + - name: "notified_at" + type: "date-time" + description: "The time the user was notified with the conversation part." + + - name: "part_type" + type: "string" + description: "The type of the conversation part." + + - name: "type" + type: "string" + description: "This will be `conversation_part`." + + - name: "updated_at" + type: "date-time" + description: "The time the conversation part was updated." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v1/conversations.md b/_integration-schemas/intercom/v1/conversations.md new file mode 100644 index 000000000..7434cf0d0 --- /dev/null +++ b/_integration-schemas/intercom/v1/conversations.md @@ -0,0 +1,281 @@ +--- +tap: "intercom" +version: "1" +key: "conversation" + +name: "conversations" +doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#conversation-model" +singer-schema: "https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/conversations.json" +description: | + The `{{ table.name }}` table contains info about user conversations in your {{ integration.display_name }} account. + +replication-method: "Key-based Incremental" + +api-method: + name: "List all conversations" + doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#list-conversations" + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The conversation ID." + foreign-key-id: "conversation-id" + + - name: "updated_at" + type: "date-time" + description: "The time that the conversation was last updated." + replication-key: true + + - name: "assignee" + type: "object" + description: "Details about the admin or team assigned to the conversation." + + - name: "conversation_message" + type: "object" + description: "A list of message details." + subattributes: + - name: "attachments" + type: "array" + description: "Details about the attachments, if any, that are a part of the conversation message." + subattributes: + - name: "url" + type: "string" + description: "The attachment URL." + + - name: "name" + type: "string" + description: "The name of the attachment. Ex: `image001.png`, `presentation.pdf`" + + - name: "content_type" + type: "string" + description: "The content type of the attachment. Ex: `image/png`, `application/pdf`" + + - name: "height" + type: "integer" + description: "For image attachments, the height of the image." + + - name: "width" + type: "integer" + description: "For image attachments, the width of the image." + + - name: "filesize" + type: "integer" + description: "The file size of the attachment." + + - name: "type" + type: "string" + description: "The value of this field will be `upload`." + + - name: "author" + type: "object" + description: "Details about the user that created the conversation message." + subattributes: + - name: "id" + type: "string" + description: | + The ID of the user who created the conversation message. + + Depending on the author's `type`, this will be a foreign key to either the [`admins`](#admins) or [`contacts`](#contacts) table. + + - name: "type" + type: "string" + description: | + The type of user that created the conversation message. Possible values are: + + - `user` + - `lead` + - `admin` + + - name: "body" + type: "string" + description: "The conversation message body, which may contain HTML. This is the body of the message that started the conversation." + + - name: "delivered_as" + type: "string" + description: "" + + - name: "id" + type: "string" + description: "The ID of the conversation message." + + - name: "subject" + type: "string" + description: "The conversation message subject, or the subject of the message that started the conversation." + + - name: "type" + type: "string" + description: | + The type of the conversation message. Possible values are: + + - `conversation` + - `push` + - `facebook` + - `twitter` + - `email` + + - name: "url" + type: "string" + description: "The URL where the conversation was started. For Twitter, Email, and Bots, this will be `null`." + + - name: "conversation_rating" + type: "object" + description: "Details about the rating for the conversation." + subattributes: + - name: "created_at" + type: "date-time" + description: "The time that the conversation being rated was created." + + - name: "customer" + type: "object" + description: "Details about the customer who rated the conversation." + subattributes: + - name: "id" + type: "string" + description: "The customer ID." + foreign-key-id: "contact-id" + + - name: "type" + type: "string" + description: "This will be `contact`." + + - name: "rating" + type: "integer" + description: "The rating, between 1 and 5, for the conversation." + + - name: "remark" + type: "string" + description: "A remark about the rating, if any." + + - name: "teammate" + type: "object" + description: "The ID of the teammate associated with the conversation when it was rated." + subattributes: + - name: "id" + type: "integer" + description: "The ID of the teammate." + foreign-key-id: "admin-id" + + - name: "type" + type: "string" + description: "The type of the teammate." + + - name: "created_at" + type: "date-time" + description: "The time the conversation was created." + + - name: "customer_first_reply" + type: "object" + description: "Details about the customer's first reply to the conversation." + subattributes: + - name: "created_at" + type: "date-time" + description: "The time the user's message was created, in Unix timestamp format." + + - name: "type" + type: "string" + description: | + The channel over which the first reply occurred. Possible values are: + + - `conversation` + - `push` + - `facebook` + - `twitter` + - `email` + + - name: "url" + type: "string" + description: "The URL where the first reply originated from." + + - name: "customers" + type: "array" + description: "Details about the customers involved in the conversation." + subattributes: + - name: "id" + type: "string" + description: "The customer ID." + foreign-key-id: "contact-id" + + - name: "type" + type: "string" + description: "The type of the customer. This will be either `lead` or `user`." + + - name: "open" + type: "boolean" + description: "Indicates whether a conversation is open/snoozed (`true`) or closed (`false`)." + + - name: "read" + type: "boolean" + description: "Indicates whether a conversation has been read." + + - name: "sent_at" + type: "date-time" + description: "" + + - name: "snoozed_until" + type: "date-time" + description: "If set, this is the time in the future when the conversation will be marked as open." + + - name: "state" + type: "string" + description: | + The current state of the conversation. Possible values are: + + - `open` + - `closed` + - `snoozed` + + - name: "tags" + type: "array" + description: "Details about the tags applied to the conversation." + subattributes: + - name: "id" + type: "string" + description: "The tag ID." + foreign-key-id: "tag-id" + + - name: "applied_at" + type: "date-time" + description: "The time the tag was applied." + + - name: "applied_by" + type: "object" + description: "Details about the admin that applied the tag." + subattributes: + - name: "id" + type: "integer" + description: "The admin ID." + foreign-key-id: "admin-id" + + - name: "type" + type: "string" + description: "This will be `tag`." + + - name: "name" + type: "string" + description: "The name of the tag." + + - name: "type" + type: "string" + description: "This will be `tags.list`." + + - name: "type" + type: "string" + description: "This will be `conversation`." + + - name: "user" + type: "object" + description: "A list of users associated with the conversation." + subattributes: + - name: "id" + type: "string" + description: "The user ID." + + - name: "type" + type: "string" + description: "" + + - name: "waiting_since" + type: "date-time" + description: "The last time a contact responded to an admin. In other words, the time a customer started waiting for a response. This will be `null` if last reply is from an admin." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v1/foreign-keys.md b/_integration-schemas/intercom/v1/foreign-keys.md new file mode 100644 index 000000000..54ee3f5bd --- /dev/null +++ b/_integration-schemas/intercom/v1/foreign-keys.md @@ -0,0 +1,109 @@ +--- +# -------------------------- # +# USING THIS TEMPLATE # +# -------------------------- # + +## NEED HELP USING THIS TEMPLATE? SEE: +## https://docs-about-stitch-docs.netlify.com/reference/integration-templates/saas-foreign-keys/ +## FOR INSTRUCTIONS & REFERENCE INFO + +tap-reference: "intercom" + +version: "1" + +foreign-keys: + - id: "admin-id" + table: "admins" + attribute: "admin_id" + all-foreign-keys: + - table: "admins" + join-on: "id" + - table: "company_attributes" + - table: "contact_attributes" + - table: "contacts" + join-on: "owner_id" + - table: "conversation_parts" + join-on: "assigned_to" + - table: "conversations" + subattribute: "conversation_rating.teammate" + join-on: "id" + - table: "conversations" + subattribute: "tags.applied_by" + join-on: "id" + - table: "teams" + subattribute: "admin_ids" + join-on: "id" + + - id: "company-id" + table: "companies" + attribute: "id" + all-foreign-keys: + - table: "companies" + join-on: "id" + + - table: "contacts" + subattribute: "companies.data" + join-on: "id" + + - id: "company-segment-id" + table: "company_segments" + attribute: "id" + all-foreign-keys: + - table: "company_segments" + join-on: "id" + + - id: "conversation-id" + table: "conversations" + attribute: "id" + all-foreign-keys: + - table: "conversations" + join-on: "id" + - table: "conversation_parts" + join-on: "conversation_id" + + - id: "contact-id" + table: "contacts" + attribute: "id" + subattributes: + - table: "contacts" + - table: "conversations" + subattribute: "conversation_rating.customer" + - table: "conversations" + subattribute: "customers" + + - id: "segment-id" + table: "segment" + attribute: "id" + all-foreign-keys: + - table: "companies" + subattribute: "segments" + join-on: "id" + - table: "segment" + join-on: "id" + + - id: "tag-id" + table: "tags" + attribute: "id" + all-foreign-keys: + - table: "contacts" + subattribute: "tags.data" + join-on: "id" + - table: "conversations" + subattribute: "tags" + join-on: "id" + - table: "companies" + subattribute: "tags" + join-on: "id" + - table: "tags" + join-on: "id" + + - id: "team-id" + table: "teams" + attribute: "id" + all-foreign-keys: + - table: "admins" + subattribute: "team_ids" + join-on: "value" + - table: "teams" + join-on: "id" +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v1/segments.md b/_integration-schemas/intercom/v1/segments.md new file mode 100644 index 000000000..b9985cb52 --- /dev/null +++ b/_integration-schemas/intercom/v1/segments.md @@ -0,0 +1,44 @@ +--- +tap: "intercom" +version: "1" + +name: "segments" +doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#segment-model" +singer-schema: "https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/segments.json" +description: + The `{{ table.name }}` table contains information about segments within your {{ integration.display_name }} account. + +replication-method: "Key-based Incremental" + +api-method: + name: "List all segments" + doc-link: "https://developers.intercom.com/intercom-api-reference/v2.0/reference#list-segments" + +attributes: + - name: "id" + type: "string" + primary-key: true + description: "The segment ID." + foreign-key-id: "segment-id" + + - name: "updated_at" + type: "date-time" + description: "The time the segment was last updated." + replication-key: true + + - name: "count" + type: "integer" + description: "The number of items in the segment." + + - name: "created_at" + type: "date-time" + description: "The time the segment was created." + + - name: "name" + type: "string" + description: "The name of the segment." + + - name: "type" + type: "string" + description: "This will be `segment`." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v1/tags.md b/_integration-schemas/intercom/v1/tags.md new file mode 100644 index 000000000..b84dd1dc5 --- /dev/null +++ b/_integration-schemas/intercom/v1/tags.md @@ -0,0 +1,32 @@ +--- +tap: "intercom" +version: "1" +key: "tag" + +name: "tags" +doc-link: "https://developers.intercom.com/intercom-api-reference/reference#tag-model" +singer-schema: "https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/tags.json" +description: | + The `{{ table.name }}` table contains information about tags within your {{ integration.display_name }} account. + +replication-method: "Full Table" + +api-method: + name: "List all tags" + doc-link: "https://developers.intercom.com/intercom-api-reference/reference#list-tags-for-an-app" + +attributes: + - name: "id" + type: "integer" + primary-key: true + description: "The tag ID." + foreign-key-id: "tag-id" + + - name: "name" + type: "string" + description: "The name of the tag." + + - name: "type" + type: "string" + description: "This will be `tag`." +--- \ No newline at end of file diff --git a/_integration-schemas/intercom/v1/teams.md b/_integration-schemas/intercom/v1/teams.md new file mode 100644 index 000000000..f7f12b0be --- /dev/null +++ b/_integration-schemas/intercom/v1/teams.md @@ -0,0 +1,41 @@ +--- +tap: "intercom" +version: "1" +key: "team" + +name: "teams" +doc-link: "https://developers.intercom.com/intercom-api-reference/reference#teams-model" +singer-schema: "https://github.com/singer-io/tap-intercom/blob/master/tap_intercom/schemas/teams.json" +description: | + The `{{ table.name }}` table contains information about teams in your {{ integration.display_name }} account. + +replication-method: "Full Table" + +api-method: + name: "List all teams" + doc-link: "https://developers.intercom.com/intercom-api-reference/reference#list-teams" + +attributes: + - name: "id" + type: "integer" + primary-key: true + description: "The team ID." + foreign-key-id: "team-id" + + - name: "admin_ids" + type: "array" + description: "The admins that belong to the team." + subattributes: + - name: "id" + type: "string" + description: "The admin ID." + foreign-key-id: "admin-id" + + - name: "name" + type: "string" + description: "The name of the team." + + - name: "type" + type: "string" + description: "This will be `team`." +--- \ No newline at end of file diff --git a/_saas-integrations/intercom/intercom-latest.md b/_saas-integrations/intercom/v02-02-2016/intercom-v02-02-2016.md similarity index 88% rename from _saas-integrations/intercom/intercom-latest.md rename to _saas-integrations/intercom/v02-02-2016/intercom-v02-02-2016.md index cd1091fbd..bac1e5aad 100644 --- a/_saas-integrations/intercom/intercom-latest.md +++ b/_saas-integrations/intercom/v02-02-2016/intercom-v02-02-2016.md @@ -1,9 +1,23 @@ --- -title: Intercom -permalink: /integrations/saas/intercom +# -------------------------- # +# 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: Intercom (v02-02-2016) +permalink: /integrations/saas/intercom/v02-02-2016 keywords: intercom, integration, schema, etl intercom, intercom etl, intercom schema summary: "Connection instructions, replication info, and schema details for Stitch's Intercom integration." layout: singer +input: false key: "intercom-setup" diff --git a/_saas-integrations/intercom/v1/intercom-v1.md b/_saas-integrations/intercom/v1/intercom-v1.md new file mode 100644 index 000000000..ec0ff69c4 --- /dev/null +++ b/_saas-integrations/intercom/v1/intercom-v1.md @@ -0,0 +1,95 @@ +--- +# -------------------------- # +# 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: Intercom (v1) +permalink: /integrations/saas/intercom +keywords: intercom, integration, schema, etl intercom, intercom etl, intercom schema +layout: singer +# input: false + +key: "intercom-setup" + + +# -------------------------- # +# Tap Details # +# -------------------------- # + +name: "intercom" +display_name: "Intercom" + +singer: true +tap-name: "Intercom" +repo-url: https://github.com/singer-io/tap-intercom + +this-version: "1" + +api: | + [{{ integration.display_name }} API (V2.0)](https://developers.intercom.com/intercom-api-reference/v2.0/reference){:target="new"} + + +# -------------------------- # +# Stitch Details # +# -------------------------- # + +certified: true + +historical: "1 year" +frequency: "30 minutes" +tier: "Standard" +status-url: "https://status.intercom.io/" + +api-type: "platform.intercom" + +anchor-scheduling: true +cron-scheduling: true + +extraction-logs: true +loading-reports: true + +table-selection: true +column-selection: true + + +# -------------------------- # +# Setup Instructions # +# -------------------------- # + +setup-steps: + - title: "add integration" + - title: "historical sync" + - title: "replication frequency" + - title: "Authorize Stitch to access {{ integration.display_name }}" + anchor: "authorize-stitch" + content: | + Lastly, you'll be directed to {{ integration.display_name }}'s website to complete the setup. + + {% include layout/inline_image.html type="right" file="integrations/intercom-access-request.png" alt="List of permissions requested by Stitch to access Intercom" max-width="400px" %}1. If you aren't already logged into {{ integration.display_name }}, you'll be prompted to do so. + 2. Next, a screen requesting access to {{ integration.display_name }} will display. **Note**: Stitch will only ever read your data. + 3. Click **Connect.** + 4. After the authorization process successfully completes, you'll be redirected back to Stitch. + 5. Click {{ app.buttons.finish-int-setup }}. + + - title: "track data" + + +# -------------------------- # +# Integration Tables # +# -------------------------- # + +# Looking for the table schemas & info? +# Each table has a its own .md file in /_integration-schemas/saas-integration + +--- +{% assign integration = page %} +{% include misc/data-files.html %} \ No newline at end of file diff --git a/_templates/integrations/databases/database-base.md b/_templates/integrations/databases/database-base.md index 02ad1914c..e6a282071 100644 --- a/_templates/integrations/databases/database-base.md +++ b/_templates/integrations/databases/database-base.md @@ -60,6 +60,7 @@ db-type: "" ## Stitch features +api-type: "" versions: "n/a" ssh: true/false ssl: true/false diff --git a/_templates/integrations/saas/saas-base.md b/_templates/integrations/saas/saas-base.md index 3b0687296..572e05c0a 100644 --- a/_templates/integrations/saas/saas-base.md +++ b/_templates/integrations/saas/saas-base.md @@ -12,8 +12,8 @@ # Page & Formatting # # -------------------------- # -title: SAAS-INTEGRATION -permalink: /integrations/saas/saas-integration +title: SAAS-INTEGRATION (vVERSION) +permalink: /integrations/saas/saas-integration ## Add if there are multiple versions: /vVERSION keywords: saas-integration, integration, schema, etl saas-integration, saas-integration etl, saas-integration schema layout: singer # input: false @@ -31,7 +31,7 @@ display_name: "SAAS-INTEGRATION" singer: true status-url: "" -tap-name: "" +tap-name: "" ## Ex: Intercom, not intercom repo-url: https://github.com/singer-io/tap-saas-integration this-version: "" @@ -50,6 +50,8 @@ historical: "1 year" frequency: "1 hour" tier: "Free/Standard/Enterprise" +api-type: "" + anchor-scheduling: true cron-scheduling: true