Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SAASINT-2960] DDSaaS: Intercom: Integration v1.0.0 #18602

Open
wants to merge 18 commits into
base: master
Choose a base branch
from

Conversation

avaid-crest
Copy link
Contributor

What does this PR do?

This is a initial release PR of Intercom integration including all the required assets i.e. Pipeline, Dashboard and Monitors

Additional Notes

  • This integration is webhook based and so Crawler will not be used.
  • The Datadog team will implement the appropriate component for generating URLs. A URL will be created having the ddsource query parameter set to intercom.
  • The assets are available in our sandbox and can be shared separately with the required teams.

Review checklist (to be filled by reviewers)

  • Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
  • Changelog entries must be created for modifications to shipped code
  • Add the qa/skip-qa label if the PR doesn't need to be tested during QA.
  • If you need to backport this PR to another branch, you can add the backport/<branch-name> label to the PR and it will automatically open a backport PR once this one is merged

@avaid-crest avaid-crest marked this pull request as ready for review September 18, 2024 16:17
@avaid-crest avaid-crest requested review from a team as code owners September 18, 2024 16:17
@buraizu buraizu added the editorial review Waiting on a more in-depth review from a docs team editor label Sep 18, 2024
@buraizu
Copy link
Contributor

buraizu commented Sep 18, 2024

Thanks, created DOCS-9029 to review

drichards-87
drichards-87 previously approved these changes Sep 19, 2024
Copy link
Contributor

@drichards-87 drichards-87 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some suggestions from Docs and approved the PR.

## Overview
[Intercom][1] is a customer communication platform that enables businesses to engage with their users through in-app messaging, email, and chat. It offers features like live chat, automated messaging, and customer support tools, making it easier for companies to provide personalized customer experiences.

The Intercom integration seamlessly collects admin activities, data events, conversations, news items and tickets data and ingests them into Datadog for comprehensive analysis using webhooks.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The Intercom integration seamlessly collects admin activities, data events, conversations, news items and tickets data and ingests them into Datadog for comprehensive analysis using webhooks.
The Intercom integration seamlessly collects admin activities, data events, conversations, news items, and ticket data, and ingests them into Datadog for comprehensive analysis using webhooks.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have applied the changes as per suggested.

"configuration": "README.md#Setup",
"support": "README.md#Support",
"changelog": "CHANGELOG.md",
"description": "Gain insights into Intercom Admin activities, Data Events, Conversations, News Items and Tickets data.",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"description": "Gain insights into Intercom Admin activities, Data Events, Conversations, News Items and Tickets data.",
"description": "Gain insights into Intercom Admin activities, Data Events, Conversations, News Items, and Ticket data.",

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes have been applied as per your suggestion.

"created_at": "2024-09-18",
"last_updated_at": "2024-09-18",
"title": "Large Number of Low Rated Conversations",
"description": "The monitor tracks and alerts when a large number of conversations have received low ratings.",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"description": "The monitor tracks and alerts when a large number of conversations have received low ratings.",
"description": "This monitor tracks and alerts when a large number of conversations receive low ratings.",

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have applied the changes.

"id": 1695785703283444,
"definition": {
"type": "note",
"content": "**Overview**\n\nThis dashboard provides a detailed overview of insights related to tickets, tracking total tickets, shared and archived tickets and categorizing them by type and state. Additionally, it includes insights on Tickets by Teammate Assignee ID and Tickets by Team Assignee ID.\n\nFor more information, see the [Intercom Integration Documentation](https://docs.datadoghq.com/integrations/intercom/).\n\n**Tips**\n- Use the timeframe selector in the top right of the dashboard to change the default timeframe.\n- Clone this dashboard to rearrange, modify and add widgets and visualizations.",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"content": "**Overview**\n\nThis dashboard provides a detailed overview of insights related to tickets, tracking total tickets, shared and archived tickets and categorizing them by type and state. Additionally, it includes insights on Tickets by Teammate Assignee ID and Tickets by Team Assignee ID.\n\nFor more information, see the [Intercom Integration Documentation](https://docs.datadoghq.com/integrations/intercom/).\n\n**Tips**\n- Use the timeframe selector in the top right of the dashboard to change the default timeframe.\n- Clone this dashboard to rearrange, modify and add widgets and visualizations.",
"content": "**Overview**\n\nThis dashboard provides a detailed overview of insights related to tickets, tracking total tickets, shared tickets, and archived tickets, and categorizing them by type and state. Additionally, it includes insights on Tickets by Teammate Assignee ID and Tickets by Team Assignee ID.\n\nFor more information, see the [Intercom Integration Documentation](https://docs.datadoghq.com/integrations/intercom/).\n\n**Tips**\n- Use the timeframe selector in the upper-right corner of the dashboard to change the default timeframe.\n- Clone this dashboard to rearrange, modify, and add widgets and visualizations.",

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your suggestion. I have applied the changes as per suggested.

@@ -0,0 +1,1650 @@
{
"title": "Intercom Conversation",
"description": "This dashboard provides a comprehensive view of conversation metrics, tracking total conversations, unique ids, and AI-driven interactions. It covers user engagement with read, unread, and priority conversations and monitors admin participation.",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"description": "This dashboard provides a comprehensive view of conversation metrics, tracking total conversations, unique ids, and AI-driven interactions. It covers user engagement with read, unread, and priority conversations and monitors admin participation.",
"description": "This dashboard provides a comprehensive view of conversation metrics, tracking total conversations, unique ids, and AI-driven interactions. It covers user engagement with read, unread, and priority conversations, and monitors admin participation.",

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes have been applied.

"id": 8083967741378144,
"definition": {
"type": "note",
"content": "**Overview**\n\nThis dashboard offers an overview of activities, highlighting patterns through frequent and infrequent activities. It includes panels for activity by type, email, and location. Trends are captured with activity logs over time, and detailed logs provide data for analysis.\n\nFor more information, see the [Intercom Integration Documentation](https://docs.datadoghq.com/integrations/intercom/).\n\n**Tips**\n- Use the timeframe selector in the top right of the dashboard to change the default timeframe.\n- Clone this dashboard to rearrange, modify and add widgets and visualizations.",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"content": "**Overview**\n\nThis dashboard offers an overview of activities, highlighting patterns through frequent and infrequent activities. It includes panels for activity by type, email, and location. Trends are captured with activity logs over time, and detailed logs provide data for analysis.\n\nFor more information, see the [Intercom Integration Documentation](https://docs.datadoghq.com/integrations/intercom/).\n\n**Tips**\n- Use the timeframe selector in the top right of the dashboard to change the default timeframe.\n- Clone this dashboard to rearrange, modify and add widgets and visualizations.",
"content": "**Overview**\n\nThis dashboard offers an overview of activities and highlights patterns through frequent and infrequent activities. It includes panels for activity by type, email, and location. Trends are captured with activity logs over time, and detailed logs provide data for analysis.\n\nFor more information, see the [Intercom Integration Documentation](https://docs.datadoghq.com/integrations/intercom/).\n\n**Tips**\n- Use the timeframe selector in the upper-right corner of the dashboard to change the default timeframe.\n- Clone this dashboard to rearrange, modify, and add widgets and visualizations.",

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have implemented the recommended changes.


### Logs

The Intercom integration collects and forwards admin activities, tickets, data events, news items and conversation logs to Datadog.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The Intercom integration collects and forwards admin activities, tickets, data events, news items and conversation logs to Datadog.
The Intercom integration collects and forwards admin activities, tickets, data events, news items, and conversation logs to Datadog.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes have been implemented as per your suggestion.

Comment on lines 20 to 25
- Sign in to your [Intercom][2] account with a user which has full access to Apps and Integrations.
- Go to **Settings**.
- Under the Integrations section, select **Developer Hub**.
- Click on **New app**
- Fill in the required details for your application, such as the name and associated workspace.
- Click **Create app**.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Sign in to your [Intercom][2] account with a user which has full access to Apps and Integrations.
- Go to **Settings**.
- Under the Integrations section, select **Developer Hub**.
- Click on **New app**
- Fill in the required details for your application, such as the name and associated workspace.
- Click **Create app**.
1. Sign in to your [Intercom][2] account using a user account with full access to Apps and Integrations.
2. Go to **Settings**.
3. In the Integrations section, select **Developer Hub**.
4. Click **New app**.
5. Fill in the required details for your application, such as the name and associated workspace.
6. Click **Create app**.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your suggestion. I have applied the changes as recommended.

Comment on lines 27 to 35
- Select Required permissions
- After creating the app, go to the *Authentication* section in the left-hand menu and click on the **Edit** button in the top-right corner.
- By default, all permissions will be enabled, but ensure that the following permissions are specifically enabled:
- Read admins
- Read content data
- Read conversations
- Read events
- Read tickets
- Click **Save**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Select Required permissions
- After creating the app, go to the *Authentication* section in the left-hand menu and click on the **Edit** button in the top-right corner.
- By default, all permissions will be enabled, but ensure that the following permissions are specifically enabled:
- Read admins
- Read content data
- Read conversations
- Read events
- Read tickets
- Click **Save**
1. Select Required permissions
1. After creating the app, navigate to the *Authentication* section using the left-side menu and click **Edit** button in the upper-right corner.
2. By default, all permissions are enabled. However, ensure that the following specific permissions are enabled:
- Read admins
- Read content data
- Read conversations
- Read events
- Read tickets
3. Click **Save**.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have applied the recommended changes.

Comment on lines 36 to 56
- Select Webhook topics
- Now, go to the Webhooks section present in the left sidebar.
- Enter the endpoint URL that was generated [here](#webhook-url-generation).
- From the dropdown menu labeled **Select a topic**, select the below webhook topics:
- admin.activity_log_event.created
- content_stat.news_item
- conversation.admin.closed
- conversation.admin.replied
- conversation.admin.single.created
- conversation.admin.snoozed
- conversation.admin.unsnoozed
- conversation.priority.updated
- conversation.rating.added
- conversation.user.created
- event.created
- ticket.admin.assigned
- ticket.attribute.updated
- ticket.created
- ticket.state.updated
- ticket.team.assigned
- Click **Save**.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Select Webhook topics
- Now, go to the Webhooks section present in the left sidebar.
- Enter the endpoint URL that was generated [here](#webhook-url-generation).
- From the dropdown menu labeled **Select a topic**, select the below webhook topics:
- admin.activity_log_event.created
- content_stat.news_item
- conversation.admin.closed
- conversation.admin.replied
- conversation.admin.single.created
- conversation.admin.snoozed
- conversation.admin.unsnoozed
- conversation.priority.updated
- conversation.rating.added
- conversation.user.created
- event.created
- ticket.admin.assigned
- ticket.attribute.updated
- ticket.created
- ticket.state.updated
- ticket.team.assigned
- Click **Save**.
2. Select Webhook topics
1. Next, navigate to the **Webhooks** section using the left-side menu.
2. Enter the endpoint URL that was generated [here](#webhook-url-generation).
3. On the **Select a topic** dropdown menu, select the following webhook topics:
- admin.activity_log_event.created
- content_stat.news_item
- conversation.admin.closed
- conversation.admin.replied
- conversation.admin.single.created
- conversation.admin.snoozed
- conversation.admin.unsnoozed
- conversation.priority.updated
- conversation.rating.added
- conversation.user.created
- event.created
- ticket.admin.assigned
- ticket.attribute.updated
- ticket.created
- ticket.state.updated
- ticket.team.assigned
4. Click **Save**.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have implemented the recommended changes.

@dj0well dj0well changed the title DDSaaS: Intercom: Integration v1.0.0 [https://datadoghq.atlassian.net/browse/SIEMINT-126] DDSaaS: Intercom: Integration v1.0.0 Sep 23, 2024
@dj0well dj0well changed the title [https://datadoghq.atlassian.net/browse/SIEMINT-126] DDSaaS: Intercom: Integration v1.0.0 [SIEMINT-126] DDSaaS: Intercom: Integration v1.0.0 Sep 23, 2024
@dj0well dj0well requested a review from a team September 23, 2024 09:15
@MatthewMSaucedo MatthewMSaucedo added the assets/deploy-logs-staging ONLY USED BY Logs Backend - Validates that a PR is OK to go to staging label Sep 26, 2024
@torosmassa torosmassa changed the title [SIEMINT-126] DDSaaS: Intercom: Integration v1.0.0 [SAASINT-2960] DDSaaS: Intercom: Integration v1.0.0 Nov 19, 2024
## Overview
[Intercom][1] is a customer communication platform that enables businesses to engage with their users through in-app messaging, email, and chat. It offers features like live chat, automated messaging, and customer support tools, making it easier for companies to provide personalized customer experiences.

The Intercom integration seamlessly collects admin activities, data events, conversations, news items, and ticket data, and ingests them into Datadog for comprehensive analysis using webhooks.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we please add a link to Asana's webhook docs?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we have added the link of intercom webhook docs.

2. Go to **Settings**.
3. In the Integrations section, select **Developer Hub**.
4. Click **New app**.
5. Fill in the required details for your application, such as the name and associated workspace.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

such as > including

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done changes as per suggestions.

6. Click **Create app**.
- #### Configure webhook topics
1. Select Required permissions
1. After creating the app, navigate to the *Authentication* section using the left-side menu and click **Edit** button in the upper-right corner.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After creating the app, go to the Authentication section in the left-side menu, and click the Edit button in the top-right corner.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done changes as per suggestions.

1. Next, navigate to the **Webhooks** section using the left-side menu.
2. Enter the endpoint URL that was generated [here](#webhook-url-generation).
3. On the **Select a topic** dropdown menu, select the following webhook topics:
- admin.activity_log_event.created
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we please format these as code?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done changes as per suggestions.

iliakur
iliakur previously approved these changes Dec 11, 2024
steveny91
steveny91 previously approved these changes Dec 11, 2024
apiazza-dd
apiazza-dd previously approved these changes Dec 11, 2024
event, data_event
conversation, conversation
content_stat.news_item, news_item
ticket, ticket
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please double check this lookup table, specifically ticket ticket_ticket_part

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We verified the lookup table, and there are logs which have data.item.type as ticket_ticket_part.


## Setup

Follow the instructions below to configure this integration for your Intercom account.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Follow the instructions in the Configuration section.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have taken the reference from Contentful README.

@avaid-crest avaid-crest dismissed stale reviews from apiazza-dd, steveny91, and iliakur via 204d3cd December 12, 2024 05:17
Copy link
Contributor

@gunterd gunterd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few comments on the logs pipeline/tests

enabled: true
sources:
- network.client.ip
target: network.client.geoip
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a test case for this? This will affect the Geoip group of facets, and the example you have doesn't have any data in this field.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have modified the sample response to address the test case.

`data.item.custom_attributes.copilot_used`
enabled: true
sources:
- data.item.custom_attributes.Copilot used
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this source correct? In the test sample, I see this as data.item.custom_attributes.copilot_used. If the source and the target are the same, does this need to be mapped at all?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have modified the sample response to address the test case.

@gunterd gunterd added assets/deploy-logs-staging ONLY USED BY Logs Backend - Validates that a PR is OK to go to staging and removed assets/deploy-logs-staging ONLY USED BY Logs Backend - Validates that a PR is OK to go to staging labels Dec 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.