Skip to content

Comments

feat: Refactor RR logic to exclude the Salesforce bookings#21861

Closed
JagjeevanAK wants to merge 19 commits intocalcom:mainfrom
JagjeevanAK:JagjeevanAK/RR-refactor
Closed

feat: Refactor RR logic to exclude the Salesforce bookings#21861
JagjeevanAK wants to merge 19 commits intocalcom:mainfrom
JagjeevanAK:JagjeevanAK/RR-refactor

Conversation

@JagjeevanAK
Copy link

@JagjeevanAK JagjeevanAK commented Jun 17, 2025

Signed-off-by: Jagjeevan Kashid jagjeevandev97@gmail.com

What does this PR do?

This PR implements a new setting for event types that allows users to exclude Salesforce-assigned bookings from Round Robin calculations. When enabled, only bookings assigned via Round Robin logic will count towards the RR distribution, while bookings assigned due to Salesforce ownership will not affect the balance.

Image Demo:

I have not added image as I don't have salseforce ID

Settings UI:

  • Setting is implemented in the Salesforce app interface (not main EventType form)
  • Toggle includes descriptive help text explaining the functionality
  • Setting is disabled by default to maintain backward compatibility

Behavior:

  • When enabled: Only RR-assigned bookings count toward user's booking balance
  • When disabled: All bookings count (existing behavior)

Key Changes Made

Testing Updates

  • packages/lib/server/getLuckyUser.test.ts: Updated tests to mock Salesforce app data using vi.spyOn(EventTypeService, 'getEventTypeAppDataFromId')
  • apps/web/test/lib/handleChildrenEventTypes.test.ts: Cleaned up by removing deprecated field from all test mocks
  • Tests now verify proper app data retrieval and fallback behavior

Test Steps:

Test 1: Default Behavior (Setting Disabled)

  1. Navigate to Event Type settings → Apps → Salesforce
  2. Verify "Only count RR-assigned bookings for RR" toggle is OFF by default
  3. Create a new booking
  4. Verify Round Robin logic considers ALL previous bookings (including Salesforce-assigned ones)

Test 2: New Behavior (Setting Enabled)

  1. Enable "Only count RR-assigned bookings for RR" toggle in Salesforce app interface
  2. Save the app settings
  3. Create a new booking
  4. Verify Round Robin logic only considers RR-assigned bookings
  5. Verify Salesforce-assigned bookings are excluded from the count

Test 3: Backend Verification

  1. Check that backend fetches setting from app data, not EventType property
  2. Verify excludeSalesforceBookingsFromRR flag is derived from Salesforce app metadata
  3. Confirm assignment reasons are properly tracked and filtered

Expected Results:

  • Setting appears in Salesforce app interface with proper styling and help text
  • Default value is false (maintains existing behavior)
  • When enabled, only RR-assigned bookings affect next user selection
  • App data retrieval and saving works correctly
  • No impact on existing event types or bookings
  • Backend consistently reads from the same data source as frontend

Checklist

  • I have read the contributing guide
  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • I have checked if my changes generate no new warnings
  • REFACTORED: Backend now reads from Salesforce app data for consistency
  • VERIFIED: Frontend already correctly integrated with app data
  • UPDATED: All tests now properly mock app data instead of EventType property

Summary by cubic

REFACTORED the backend to read Salesforce booking exclusion setting from app data instead of EventType property, ensuring consistency between frontend and backend data sources.

  • Backend Changes: Complete refactor of getLuckyUser.ts to fetch setting from Salesforce app metadata
  • Frontend Cleanup: Removed deprecated EventType form fields and verified app data integration
  • Testing Updates: All tests now mock app data correctly instead of using deprecated EventType property
  • Architecture: Unified data flow where both frontend and backend use the same Salesforce app data source

Summary by CodeRabbit

  • New Features

    • Added a toggle in the event type settings to exclude Salesforce-assigned bookings from round-robin calculations for applicable scheduling types.
    • New localization strings provide a label and description for this toggle.
  • Bug Fixes

    • None.
  • Tests

    • Added test cases verifying correct inclusion or exclusion of Salesforce bookings in round-robin logic based on the new toggle.
  • Style

    • Minor formatting improvements for code readability.
  • Chores

    • Database schema updated to support the new exclusion setting for event types.

Signed-off-by: Jagjeevan Kashid <jagjeevandev97@gmail.com>
Signed-off-by: Jagjeevan Kashid <jagjeevandev97@gmail.com>
@JagjeevanAK JagjeevanAK requested a review from a team as a code owner June 17, 2025 08:30
@JagjeevanAK JagjeevanAK requested a review from a team June 17, 2025 08:30
@graphite-app graphite-app bot requested a review from a team June 17, 2025 08:30
@graphite-app graphite-app bot added the community Created by Linear-GitHub Sync label Jun 17, 2025
@vercel
Copy link

vercel bot commented Jun 17, 2025

@JagjeevanAK is attempting to deploy a commit to the cal Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions bot added consumer crm-apps area: crm apps, salesforce, hubspot, close.com, sendgrid High priority Created by Linear-GitHub Sync teams area: teams, round robin, collective, managed event-types ✨ feature New feature or request labels Jun 17, 2025
@dosubot dosubot bot added this to the v5.5 milestone Jun 17, 2025
@dosubot dosubot bot added the event-types area: event types, event-types label Jun 17, 2025
@graphite-app
Copy link

graphite-app bot commented Jun 17, 2025

Graphite Automations

"Add consumer team as reviewer" took an action on this PR • (06/17/25)

1 reviewer was added to this PR based on Keith Williams's automation.

"Add community label" took an action on this PR • (06/17/25)

1 label was added to this PR based on Keith Williams's automation.

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

cubic reviewed 8 files and found no issues. Review PR in cubic.dev.

JagjeevanAK and others added 2 commits June 17, 2025 14:22
Signed-off-by: Jagjeevan Kashid <jagjeevandev97@gmail.com>
@github-actions github-actions bot added the ❗️ migrations contains migration files label Jun 17, 2025
JagjeevanAK and others added 5 commits June 17, 2025 15:22
Signed-off-by: Jagjeevan Kashid <jagjeevandev97@gmail.com>
Signed-off-by: Jagjeevan Kashid <jagjeevandev97@gmail.com>
Signed-off-by: Jagjeevan Kashid <jagjeevandev97@gmail.com>
Signed-off-by: Jagjeevan Kashid <jagjeevandev97@gmail.com>
@JagjeevanAK
Copy link
Author

Ready to merge.

@JagjeevanAK
Copy link
Author

JagjeevanAK commented Jun 18, 2025

Hey @keithwillcode, can you take look at it ? and suggest a review ?

@CarinaWolli
Copy link
Member

Hi @JagjeevanAK, thank you for opening this PR 🙏 Could we show this setting in the event type's Salesforce settings instead?

@JagjeevanAK
Copy link
Author

JagjeevanAK commented Jun 18, 2025

Hey @CarinaWolli does that mean we need to create a different tab like cal.ai/webhook or section like RoundRobin Hosts or distribution hosts, etc as show in image?

@JagjeevanAK
Copy link
Author

hey @CarinaWolli I have updated the PR according to your suggestions can you check it ?

JagjeevanAK and others added 2 commits June 23, 2025 19:33
Signed-off-by: Jagjeevan Kashid <jagjeevandev97@gmail.com>
@JagjeevanAK
Copy link
Author

JagjeevanAK commented Jun 23, 2025

@Udit-takkar can you just review this PR ?

@JagjeevanAK
Copy link
Author

hey @Devanshusharma2005 can you look into this PR as well ?

@kart1ka kart1ka requested a review from a team July 9, 2025 17:58
@JagjeevanAK
Copy link
Author

@kart1ka @CarinaWolli any update on this PR?

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 14, 2025

Walkthrough

A new feature is introduced to optionally exclude Salesforce-assigned bookings from round robin calculations. This includes database schema changes, backend logic updates, a new UI toggle, localization additions, and corresponding test coverage. The change is controlled by a new boolean property, excludeSalesforceBookingsFromRR, configurable per event type.

Changes

File(s) Change Summary
.../salesforce/components/EventTypeAppCardInterface.tsx Added UI toggle for excludeSalesforceBookingsFromRR in round robin event type cards.
.../salesforce/zod.ts, .../prisma/zod-utils.ts, .../test/builder.ts Added excludeSalesforceBookingsFromRR boolean to schemas, test builders, and managed props.
.../eventtypes/components/tabs/assignment/EventTeamAssignmentTab.tsx Formatting: added a blank line for readability.
.../server/getLuckyUser.ts, .../server/repository/booking.ts Backend logic: propagate and use excludeSalesforceBookingsFromRR to filter Salesforce bookings.
.../server/repository/eventType.ts Include excludeSalesforceBookingsFromRR in event type DB select.
.../server/getLuckyUser.test.ts Added tests for Salesforce exclusion logic in round robin calculations.
.../server/locales/en/common.json Added localization strings for the new toggle and its description.
.../prisma/schema.prisma, .../prisma/migrations/.../migration.sql Added excludeSalesforceBookingsFromRR boolean field to EventType model and DB migration.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant UI
    participant Backend
    participant DB

    User->>UI: Toggles "Exclude Salesforce bookings from round robin"
    UI->>Backend: Save updated EventType with excludeSalesforceBookingsFromRR
    Backend->>DB: Update EventType.excludeSalesforceBookingsFromRR

    User->>UI: Triggers round robin booking
    UI->>Backend: Request round robin assignment
    Backend->>DB: Fetch EventType.excludeSalesforceBookingsFromRR
    Backend->>DB: Query bookings (exclude Salesforce if flag is true)
    Backend->>UI: Return assigned user
Loading

Assessment against linked issues

Objective Addressed Explanation
Add a setting to exclude Salesforce-assigned bookings from round robin calculations (#18216)
Only count bookings assigned via round robin logic when the setting is enabled (#18216)
Ensure bookings assigned due to Salesforce ownership are not counted when the setting is enabled (#18216)
Provide UI and localization for the new setting (#18216)

Poem

A toggle appears, so bright and new,
Exclude Salesforce bookings—yes, it's true!
Round robin counts now fair and clear,
Only logic-assigned bookings draw near.
With code and tests, the change is done—
Another hop, another run!
🐇✨

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

packages/app-store/salesforce/components/EventTypeAppCardInterface.tsx

Oops! Something went wrong! :(

ESLint: 8.57.1

ESLint couldn't find the plugin "eslint-plugin-playwright".

(The package "eslint-plugin-playwright" was not found when loaded as a Node module from the directory "".)

It's likely that the plugin isn't installed correctly. Try reinstalling by running the following:

npm install eslint-plugin-playwright@latest --save-dev

The plugin "eslint-plugin-playwright" was referenced from the config file in ".eslintrc.js".

If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team.

packages/app-store/salesforce/zod.ts

Oops! Something went wrong! :(

ESLint: 8.57.1

ESLint couldn't find the plugin "eslint-plugin-playwright".

(The package "eslint-plugin-playwright" was not found when loaded as a Node module from the directory "".)

It's likely that the plugin isn't installed correctly. Try reinstalling by running the following:

npm install eslint-plugin-playwright@latest --save-dev

The plugin "eslint-plugin-playwright" was referenced from the config file in ".eslintrc.js".

If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team.

packages/features/eventtypes/components/tabs/assignment/EventTeamAssignmentTab.tsx

Oops! Something went wrong! :(

ESLint: 8.57.1

ESLint couldn't find the plugin "eslint-plugin-playwright".

(The package "eslint-plugin-playwright" was not found when loaded as a Node module from the directory "".)

It's likely that the plugin isn't installed correctly. Try reinstalling by running the following:

npm install eslint-plugin-playwright@latest --save-dev

The plugin "eslint-plugin-playwright" was referenced from the config file in ".eslintrc.js".

If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team.

  • 6 others

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3de9c2b and b1c6c51.

📒 Files selected for processing (12)
  • packages/app-store/salesforce/components/EventTypeAppCardInterface.tsx (2 hunks)
  • packages/app-store/salesforce/zod.ts (1 hunks)
  • packages/features/eventtypes/components/tabs/assignment/EventTeamAssignmentTab.tsx (1 hunks)
  • packages/lib/server/getLuckyUser.test.ts (2 hunks)
  • packages/lib/server/getLuckyUser.ts (8 hunks)
  • packages/lib/server/locales/en/common.json (1 hunks)
  • packages/lib/server/repository/booking.ts (7 hunks)
  • packages/lib/server/repository/eventType.ts (1 hunks)
  • packages/lib/test/builder.ts (1 hunks)
  • packages/prisma/migrations/20250617092831_add_exclude_salesforce_bookings_from_rr/migration.sql (1 hunks)
  • packages/prisma/schema.prisma (1 hunks)
  • packages/prisma/zod-utils.ts (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
packages/lib/server/locales/en/common.json (1)

undefined

<retrieved_learning>
Learnt from: bandhan-majumder
PR: #22359
File: packages/lib/server/locales/en/common.json:1336-1339
Timestamp: 2025-07-14T16:31:45.201Z
Learning: When making localization changes for new features, it's often safer to add new strings rather than modify existing ones to avoid breaking existing functionality that depends on the original strings. This approach allows for feature-specific customization while maintaining backward compatibility.
</retrieved_learning>

🧬 Code Graph Analysis (2)
packages/app-store/salesforce/components/EventTypeAppCardInterface.tsx (2)
packages/platform/libraries/index.ts (1)
  • SchedulingType (30-30)
packages/ui/components/section/section.tsx (1)
  • Section (221-230)
packages/lib/server/getLuckyUser.test.ts (3)
packages/lib/test/builder.ts (1)
  • buildUser (287-341)
packages/lib/server/service/eventType.ts (1)
  • EventTypeService (7-34)
packages/lib/server/getLuckyUser.ts (1)
  • getLuckyUser (509-539)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Install dependencies / Yarn install & cache
  • GitHub Check: Security Check
🔇 Additional comments (21)
packages/features/eventtypes/components/tabs/assignment/EventTeamAssignmentTab.tsx (1)

371-371: LGTM! Good formatting improvement.

The added blank line improves code readability by providing visual separation between the SettingsToggle and AddMembersWithSwitch components.

packages/prisma/migrations/20250617092831_add_exclude_salesforce_bookings_from_rr/migration.sql (1)

1-1: LGTM! Well-structured migration.

The migration correctly adds the new feature flag with appropriate constraints:

  • Uses a descriptive column name
  • Sets NOT NULL with DEFAULT false for backward compatibility
  • Boolean type is appropriate for the feature flag

This ensures existing event types maintain their current behavior while enabling the new functionality.

packages/app-store/salesforce/zod.ts (1)

59-59: LGTM! Schema change aligns with database migration.

The new optional boolean field is correctly defined and consistent with:

  • The database column name and type from the migration
  • The pattern used by other optional boolean fields in the schema
  • The overall feature implementation for excluding Salesforce bookings from RR calculations
packages/prisma/schema.prisma (1)

202-202: LGTM! Well-positioned schema addition.

The new boolean field is properly positioned near other round-robin related fields and uses a sensible default value that maintains backward compatibility.

packages/lib/test/builder.ts (1)

141-141: LGTM! Consistent test builder update.

The new field is correctly added to the test builder with the same default value as the schema, ensuring consistency between test data and actual database structure.

packages/lib/server/repository/eventType.ts (1)

545-545: LGTM: Field addition to Prisma select query

The addition of excludeSalesforceBookingsFromRR: true to the CompleteEventTypeSelect object is correct and follows the existing pattern for including boolean fields in the event type query.

packages/prisma/zod-utils.ts (1)

681-681: LGTM: Field addition to managed event type properties

The addition of excludeSalesforceBookingsFromRR: true to the allManagedEventTypeProps object is correct and allows this field to be updated through the event type management interface.

packages/app-store/salesforce/components/EventTypeAppCardInterface.tsx (2)

46-46: LGTM: App data initialization

The initialization of excludeSalesforceBookingsFromRR follows the established pattern used by other fields in this component, with proper fallback to false.


444-464: LGTM: Well-implemented UI toggle for Round Robin feature

The implementation of the toggle switch is excellent:

  • Proper conditional rendering: Only shows when eventType.schedulingType === SchedulingType.ROUND_ROBIN, which makes perfect sense since this feature is specific to Round Robin scheduling
  • Consistent component usage: Follows the same pattern as other switches in the component using Section.SubSection and Section.SubSectionHeader
  • Proper state management: Uses setAppData to update the app data, consistent with other fields
  • Good UX: Includes both a title and descriptive text to help users understand the feature
  • Accessibility: Proper id and labelFor attributes for screen readers
packages/lib/server/locales/en/common.json (1)

2807-2808: Localization entries look good

Key naming, wording, punctuation, and style are consistent with the rest of the file. No issues found.

packages/lib/server/getLuckyUser.ts (4)

12-12: LGTM! Clean import addition.

The import of EventTypeService is appropriately placed and follows the existing import structure.


483-483: LGTM! Parameter addition follows good practices.

The new excludeSalesforceBookingsFromRR parameter is well-implemented with:

  • Proper default value of false to maintain backward compatibility
  • Correct optional typing in the function signature
  • Appropriate propagation to the booking repository call

Also applies to: 492-492, 504-504


638-640: LGTM! Service call implementation looks correct.

The code properly fetches Salesforce app data and extracts the excludeSalesforceBookingsFromRR setting with appropriate fallback to false. The async/await pattern and null coalescing are used correctly.


698-698: LGTM! Consistent parameter propagation.

The excludeSalesforceBookingsFromRR parameter is consistently passed to all three getBookingsOfInterval calls:

  • Available users booking query (line 698)
  • Not available hosts booking query (line 709)
  • All RR hosts booking query (line 722)

This ensures the setting is applied uniformly across all booking queries used in the round robin calculation.

Also applies to: 709-709, 722-722

packages/lib/server/getLuckyUser.test.ts (3)

8-8: LGTM! Clean import addition.

The import of EventTypeService is appropriately placed and follows the existing import structure.


1417-1470: LGTM! Comprehensive test for Salesforce exclusion.

The test properly:

  • Sets up mock users and booking data
  • Mocks EventTypeService.getEventTypeAppDataFromId to return excludeSalesforceBookingsFromRR: true
  • Calls getLuckyUser with appropriate parameters
  • Verifies that the Prisma query excludes Salesforce assignments via NOT.assignmentReason.some.reasonEnum
  • Properly restores the mock after the test

The test correctly validates that when the feature is enabled, Salesforce bookings are excluded from the round robin calculation.


1472-1525: LGTM! Comprehensive test for Salesforce inclusion.

The test properly:

  • Sets up mock users and booking data
  • Mocks EventTypeService.getEventTypeAppDataFromId to return excludeSalesforceBookingsFromRR: false
  • Calls getLuckyUser with appropriate parameters
  • Verifies that the Prisma query does NOT exclude Salesforce assignments (the filter is undefined)
  • Properly restores the mock after the test

The test correctly validates that when the feature is disabled, Salesforce bookings are included in the round robin calculation (default behavior).

packages/lib/server/repository/booking.ts (4)

8-8: Import addition looks good.

The AssignmentReasonEnum import is necessary for the filtering logic and is properly added to the existing import statement.


51-51: Good backward compatibility approach.

The optional parameter excludeSalesforceBookingsFromRR with a default value of false maintains backward compatibility while enabling the new filtering functionality.

Also applies to: 66-66


319-319: Method signature update implemented correctly.

The getAllBookingsForRoundRobin method properly accepts the new parameter, includes it in the type definition, and passes it through to the where clause builder. The parameter is correctly typed as boolean and maintains consistency with the function signature.

Also applies to: 334-334, 345-345


115-125: assignmentReason relation is defined and usable in Booking model

Confirmed that in packages/prisma/schema.prisma the Booking model includes:

assignmentReason AssignmentReason[]

Prisma one-to-many relations support the .some filter, and existing tests in packages/lib/server/getLuckyUser.test.ts verify the .NOT.assignmentReason.some.reasonEnum logic. No changes required.

✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@CarinaWolli CarinaWolli modified the milestones: v5.5, v5.6 Jul 16, 2025
@dosubot dosubot bot modified the milestone: v5.6 Jul 16, 2025
@dosubot dosubot bot modified the milestones: v5.6, v5.7 Aug 18, 2025
@kart1ka
Copy link
Contributor

kart1ka commented Aug 19, 2025

@JagjeevanAK Can you please resolve the merge conflicts? There also seems to be a test failing, can you fix that as well?

@kart1ka kart1ka marked this pull request as draft August 19, 2025 17:46
@kart1ka
Copy link
Contributor

kart1ka commented Sep 9, 2025

Closing this PR due to merge conflicts, failing tests and inactivity. You’re welcome to reopen if you plan to continue.

@kart1ka kart1ka closed this Sep 9, 2025
@JagjeevanAK
Copy link
Author

Hey I will solve the Merge conflicts and failing tests issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community Created by Linear-GitHub Sync consumer crm-apps area: crm apps, salesforce, hubspot, close.com, sendgrid event-types area: event types, event-types ✨ feature New feature or request High priority Created by Linear-GitHub Sync ❗️ migrations contains migration files teams area: teams, round robin, collective, managed event-types

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CAL-4906] Don't count bookings assigned by salesforce ownership for RR

3 participants