Update Multiple Schedule on Proposal

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Overview

Performs multiple insert, update, and delete operations on schedule records in a single request. All operations target the same domain on the same proposal.

It accepts three arrays:

Inserts – records to create

Updates – records to modify

Deletes – records to remove

Each item in the response includes an OrderNumber field that corresponds to its zero-based position in its respective input array, allowing callers to correlate results back to the original request.

Preconditions

The proposal must be modifiable. A proposal cannot be modified when:

  • Its status is Bound (B), Rejected (R), or Cancelled (0).
  • Its proposal set is bound.
  • It has a pending expiry date change endorsement.

The domain must be a valid schedule domain for the proposal.

Examples

Scenario 1: Mixed operations, non-atomic - all succeed:

POST /api/Quotes/Proposals/12345/Schedules/ProposalLocation/UpsertMulti?isAtomic=false
Content-Type: application/json

{
  "Inserts": [
    {
      "Fields": {
        "LocationName": "New Branch",
        "Address1": "100 Elm St",
        "City": "Springfield",
        "StateCode": "IL"
      }
    },
    {
      "Fields": {
        "LocationName": "Regional Office",
        "Address1": "250 Pine Rd",
        "City": "Peoria",
        "StateCode": "IL"
      }
    }
  ],
  "Updates": [
    {
      "ID": 100,
      "Fields": {
        "City": "Naperville",
        "ZipCode": "60540"
      }
    },
    {
      "ID": 102,
      "Fields": {
        "LocationName": "Warehouse (East)"
      }
    }
  ],
  "Deletes": [
    {
      "ID": 101
    },
    {
      "ID": 103
    }
  ]
}
{
  "Inserts": [
    {
      "IsSuccessful": true,
      "RecordID": 104,
      "OrderNumber": 0,
      "Message": "Inserted schedule with id 104 successfully.",
      "Warnings": null
    },
    {
      "IsSuccessful": true,
      "RecordID": 105,
      "OrderNumber": 1,
      "Message": "Inserted schedule with id 105 successfully.",
      "Warnings": null
    }
  ],
  "Updates": [
    {
      "IsSuccessful": true,
      "RecordID": 100,
      "OrderNumber": 0,
      "Message": "Updated schedule with id 100 successfully.",
      "Warnings": null
    },
    {
      "IsSuccessful": true,
      "RecordID": 102,
      "OrderNumber": 1,
      "Message": "Updated schedule with id 102 successfully.",
      "Warnings": null
    }
  ],
  "Deletes": [
    {
      "IsSuccessful": true,
      "RecordID": 101,
      "OrderNumber": 0,
      "Message": "Deleted schedule with id 101 successfully.",
      "Warnings": null
    },
    {
      "IsSuccessful": true,
      "RecordID": 103,
      "OrderNumber": 1,
      "Message": "Deleted schedule with id 103 successfully.",
      "Warnings": null
    }
  ]
}

Scenario 2: Atomic mode - one update fails, entire batch rolled back:

POST /api/Quotes/Proposals/12345/Schedules/ProposalLocation/UpsertMulti?isAtomic=true
Content-Type: application/json

{
  "Inserts": [
    {
      "Fields": {
        "LocationName": "Good Insert",
        "Address1": "200 Oak St",
        "StateCode": "IL"
      }
    }
  ],
  "Updates": [
    {
      "ID": 100,
      "Fields": {
        "LocationName": ""
      }
    }
  ],
  "Deletes": []
}
{
  "Inserts": [],
  "Updates": [
    {
      "IsSuccessful": false,
      "RecordID": 100,
      "OrderNumber": 0,
      "Message": "LocationName is required.",
      "Warnings": null
    }
  ],
  "Deletes": []
}

In atomic mode, the successful insert is excluded from the response because the transaction was rolled back.

Scenario 3: Non-atomic - partial success:

POST /api/Quotes/Proposals/12345/Schedules/ProposalLocation/UpsertMulti?isAtomic=false
Content-Type: application/json

{
  "Inserts": [
    {
      "Fields": {
        "LocationName": "Valid Location",
        "StateCode": "IL"
      }
    },
    {
      "Fields": {
        "StateCode": "IL"
      }
    }
  ],
  "Updates": [],
  "Deletes": []
}
{
  "Inserts": [
    {
      "IsSuccessful": true,
      "RecordID": 104,
      "OrderNumber": 0,
      "Message": "Inserted schedule with id 104 successfully.",
      "Warnings": null
    },
    {
      "IsSuccessful": false,
      "RecordID": 0,
      "OrderNumber": 1,
      "Message": "LocationName is required.",
      "Warnings": null
    }
  ],
  "Updates": [],
  "Deletes": []
}

The first insert succeeds and is committed. The second insert fails independently.

All operations can be processed either atomically or individually, based on the isAtomic parameter.

This saves time when you need to enter several vehicles, properties, or other items for a single proposal.

Path Params
integer
required

The ID of the Proposal.

string
required

The schedule domain name (e.g., ProposalLocation) that is being updated (with new, edited, or removed scheduled items).

Query Params
boolean
Defaults to false

The isAtomic query parameter controls transactional behavior:

  • When true, all operations are wrapped in a single transaction. If any operation fails, the entire batch is rolled back and the response contains only the failed items.
  • When false (default), each operation is independent. Failures do not affect other operations.
Body Params
json
required
Defaults to { "Inserts": [ { "Fields": { "LocationName": "New Branch", "Address1": "100 Elm St", "City": "Springfield", "StateCode": "IL" } }, { "Fields": { "LocationName": "Regional Office", "Address1": "250 Pine Rd", "City": "Peoria", "StateCode": "IL" } } ], "Updates": [ { "ID": 100, "Fields": { "City": "Naperville", "ZipCode": "60540" } }, { "ID": 102, "Fields": { "LocationName": "Warehouse (East)" } } ], "Deletes": [ { "ID": 101 }, { "ID": 103 } ] }

A json array containing the records to insert, update, or delete.

Response

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json