Skip to main content
Version: v2.0

List and read CSM cases

List Customer Service Management cases and read their fields.

When to use this pattern

  • You're syncing CSM cases into an external ticketing or reporting system
  • You're building customer-facing status views on top of ServiceNow cases

Required values

ValueDescription
Case filtersOptional query parameters narrowing which cases you get

Example

package main

import (
"context"
"fmt"
"log"

servicenow "github.com/michaeldcanady/servicenow-sdk-go/v2"
"github.com/michaeldcanady/servicenow-sdk-go/v2/credentials"
)

func main() {
// Step 1: Authenticate and initialize the client
cred := credentials.NewBasicProvider("{username}", "{password}")

client, err := servicenow.NewServiceNowServiceClient(
servicenow.WithAuthenticationProvider(cred),
servicenow.WithInstance("{instance}"),
)
if err != nil {
log.Fatalf("failed to initialize client: %v", err)
}
ctx := context.Background()

cases := client.CustomerService().Case()

// Step 2: List cases
response, err := cases.Get(ctx, nil)
if err != nil {
log.Fatalf("unable to list cases: %v", err)
}

// Step 3: Read fields from each case
list, err := response.GetResult()
if err != nil {
log.Fatal(err)
}

for _, c := range list {
number, err := c.GetNumber()
if err != nil {
log.Fatal(err)
}
short, err := c.GetShortDescription()
if err != nil {
log.Fatal(err)
}
if number != nil && short != nil {
fmt.Printf("%s — %s\n", *number, *short)
}
}
}

Tips

  • Case models are typed — GetNumber(), GetShortDescription(), GetState(), GetPriority() — no generic field unwrapping needed.
  • Post creates a case; ByID(...).Put updates one.

Next steps

Was this page helpful?