segmentio / segmentio/analytics.js-integrations

[intercom] Explicit setting of integrations prevents sending of `user_hash`.

Open
#308 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
125
Forks
136
Avg merge
2h 45m
Merged PRs (30d)
1

Description

Migrated from #10 by @more-ron

We a have a code that dynamically turns on or off Intercom integration depending on the user.

We hit a condition when it should send it to Intercom but it doesn't. It does try to send it but it's missing the user_hash.

        analytics.identify('id', { ... }, {
          Intercom: { user_hash: 'x' },
          integrations: {
            All: true,
            ...,
            Intercom: true
          }
        });

Removing the explicit setting fixed it.

        analytics.identify('id', { ... }, {
          Intercom: { user_hash: 'x' },
          integrations: {
            All: true,
            ...
          }
        });

However that just a work around and it makes the backend code a bit more complicated now that it has to decide to include the Intercom key rather than just setting the value to either true or false.

It's also setting a trap for developers expecting it to just work.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how identify options handle explicit integration settings, then follow the Intercom integration path using the two payload examples in this issue. Reproduce the case where Intercom is explicitly true and verify that the supplied user_hash is still sent; done means the explicit setting no longer drops it.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.