How to leverage our Rally Integration

Last updated: May 29, 2025

This help article provides guidance to developers who are looking to integrate with Rally via Merge. Rally is an enterprise-level project management platform, and integrating with it can help streamline your development process. By following these tips and tricks, you can ensure a successful integration with Rally via Merge.

What are the different types of Tickets that Merge normalizes?

  • HierarchialRequirement — this represents in User story in the Rally UI.

  • Task

  • Defect

  • DefectSuite

  • PortfolioItem/Feature

  • PortfolioItem/Initiative

What are the different types of Collections that Merge normalizes?

  • Project

  • Milestone

  • Release

  • Iteration

What does POST Ticket request body look like, for each ticket_type?

HierarchialRequirement

{
  "model": {
    "name": "A user story by Merge",
    "tags": ["test_tag_1", "test_tag_2"],
    "status": "IN_PROGRESS",
    "assignees": ["58ff1a57-a307-47c4-bcac-d7810c2f1693"],
    "collections": ["8340a7a5-e997-4907-837a-2508ab611a49","3ea7bd0b-9c30-47a0-b88b-2c31deab0ee7","55cb37b5-8463-4195-9d0f-40546763d4f6","6b979936-a0d8-45c3-af2d-5a483598a3ca"],
    "description": "A description",
    "ticket_type": "HierarchicalRequirement",
    "parent_ticket": "b03dfc5b-7bc2-443e-aa7f-d13ced3d2331"
  }
}

Defect

{
  "model": {
    "name": "A defect by Merge",
    "tags": ["test_tag_1", "test_tag_2"],
    "status": "IN_PROGRESS",
    "due_date": "2023-06-02T00:00:00Z",
    "assignees": ["58ff1a57-a307-47c4-bcac-d7810c2f1693"],
    "collections": ["8340a7a5-e997-4907-837a-2508ab611a49","3ea7bd0b-9c30-47a0-b88b-2c31deab0ee7","55cb37b5-8463-4195-9d0f-40546763d4f6","6b979936-a0d8-45c3-af2d-5a483598a3ca"],
    "description": "A description",
    "ticket_type": "Defect"
  }
}

PortfolioItem/Feature — Note that if including parent_ticket, it must be of type PortfolioItem/Initiative.

{
  "model": {
    "name": "A portfolioitem/feature by Merge",
    "tags": ["test_tag_1"],
    "status": "Discovering",
    "assignees": ["58ff1a57-a307-47c4-bcac-d7810c2f1693"],
    "collections": ["8340a7a5-e997-4907-837a-2508ab611a49","3ea7bd0b-9c30-47a0-b88b-2c31deab0ee7","55cb37b5-8463-4195-9d0f-40546763d4f6"],
    "description": null,
    "ticket_type": "PortfolioItem/Feature",
    "parent_ticket": "7ca62c1f-f089-4ac6-b485-94e0a1c7cd49"
  }
}

PortfolioItem/Initiative

{
  "model": {
    "name": "A portfolioitem/initiative by Merge",
    "tags": ["test_tag_1"],
    "status": "Discovering",
    "assignees": ["58ff1a57-a307-47c4-bcac-d7810c2f1693"],
    "collections": ["8340a7a5-e997-4907-837a-2508ab611a49","55cb37b5-8463-4195-9d0f-40546763d4f6"],
    "description": "A new roadmap thing",
    "ticket_type": "PortfolioItem/Initiative"
  }
}

Task — name, collections of type Project, & parent_ticket are all required.

{
  "model": {
    "name": "A task by Merge",
    "tags": ["test_tag_1"],
    "status": "In-Progress",
    "assignees": ["58ff1a57-a307-47c4-bcac-d7810c2f1693"],
    "parent_ticket": "ca65c4c3-52df-475a-943b-1a806d50dfab",
    "collections": ["8340a7a5-e997-4907-837a-2508ab611a49"],
    "description": "A new task",
    "ticket_type": "Task"
  }
}