IBM Cloud Docs
Creating support cases

Creating support cases

If you experience problems with IBM Cloud®, you can use the Support Center to create a support case. You can create cases for issues that are associated with access (IAM), billing and usage, account, and invoice or sales inquiries. Users with a Basic, Advanced, or Premium support plan can also create a case for technical support.

If your account is deactivated or if you don't have access to your account, you can create a support case by completing the Create an Account, Login or Billing Request form.

The types of available support depend on the support level of the account. Your support plan also determines the severity level that you can assign to support cases. For more information, see Case severity and response time.

Users with a Lite or Trial account can also create support cases but are limited to nontechnical issues associated with access (IAM), billing and usage, account, and invoice or sales inquiries. Technical help for accounts with a no-cost support plan is provided by the IBM Cloud Docs, the IBM Cloud AI Assistant, and online communities such as the IBM Cloud Community or Stack Overflow.

As a classic infrastructure user, you might be familiar with support tickets. Support tickets are now called support cases in IBM Cloud.

Creating a support case

By default, account users don't have access to create, update, search, or view cases. The account owner must provide users with access by assigning an Identity and Access Management (IAM) access policy. For more information, see Managing access to support cases.

Complete the following steps to create a support case:

  1. From the IBM Cloud console menu bar, click the Help icon Help icon > Support center.

  2. From the Contact support section, click Create a case.

  3. Select the category for your issue.

  4. Select the topic and the associated subtopic that is most closely related to your issue, and click Next.

  5. Complete the required fields.

    To maintain security, do not include any personal information, sensitive data, or device or service credentials in case responses. For example, don't include passwords, API keys, secrets, or credit card information.

  6. Complete optional fields:

    • Add a specific resource or product for quicker triage and investigation.
    • Attach files to provide more details about the issue you're experiencing.
    • If you'd like a user in your account to be updated about the case, add them by using the watchlist. For more information, see Updating your support case's watchlist.
    • Select Email me updates about this case to receive support case notifications.
  7. Click Next, review your case summary, and click Submit case.

  8. After you receive email verification for the case, follow the instructions for further communication on the issue.

After your support case is created, you can follow its progress on the Manage cases page.

IBM support cases can also be opened in the cloud console as well as in the IBM support portal. These cases can only be managed in the IBM support portal and access is controlled in the IBM support portal. For more information about access, see Managing Your Support Account Access.

Adding a resource to a support case

Users with a support plan that includes technical support assistance can add a specific resource or product to a case. Adding a cloud resource name (CRN) to a support case allows for a more efficient triage, investigation, and resolution.

To add a resource to a support case, use the following steps:

  1. Create a technical case type by selecting a technical category for your issue.
  2. Go to the Add resource field.
  3. Click to display the choices, then select a resource name from the list.

You can also add a cloud resource name after the case is created or add the CRN within a comment. For more information, see Updating support cases.

Creating a support case by using the API

You can programmatically open a support case by calling the Case Management API as shown in the following sample requests. For more information about the API, see Case Management.

curl --location --request POST 'support-center.cloud.ibm.com/case-management/v1/cases' --header 'Content-Type: application/json' --header 'Content-Type: text/plain' --data-raw '{ "type": "technical",
  "subject": "Case subject",
  "description": "Case description",
  "severity":4,
   "offering": {
    "name": "Cloud Object Storage",
    "type": {
      "group": "crn_service_name",
      "key": "cloud-object-storage",
      "kind": "service",
      "id": "dff97f5c-bc5e-4455-b470-411c3edbe49c"
    }
  },
  "resources": [
    {
      "crn": "crn:v1:staging:public:cloud-object-storage:global:a/2dded3de4a4d4a098ebd0998be5cc845:723a59c4-9338-43fe-9dc4-e4a87cc78c8e::",
      "note": "Resource note"
    }
  ]
}'
OfferingType offeringType = new OfferingType.Builder()
  .group(OfferingType.Group.CRN_SERVICE_NAME)
  .key("cloud-object-storage")
  .build();
Offering offeringPayload = new Offering.Builder()
  .name("Cloud Object Storage")
  .type(offeringType)
  .build();
CreateCaseOptions createCaseOptions = new CreateCaseOptions.Builder()
  .type("technical")
  .subject("Example technical case")
  .description("This is an example case description. This is where the problem would be described.")
  .offering(offeringPayload)
  .severity(4)
  .build();

Response<Case> response = service.createCase(createCaseOptions).execute();
Case xCase = response.getResult();

System.out.println(xCase);
const offeringType = {
  group: 'crn_service_name',
  key: 'cloud-object-storage',
};

const offeringPayload = {
  name: 'Cloud Object Storage',
  type: offeringType,
};

const params = {
  type: 'technical',
  subject: 'Example technical case',
  description: 'This is an example case description. This is where the problem would be described.',
  offering: offeringPayload,
  severity: 4,
};

caseManagementService.createCase(params)
  .then(res => {
    caseNumber = res.result.number
    console.log(JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
offering_type = OfferingType(
  group='crn_service_name',
  key='cloud-object-storage'
)
offering_payload = Offering(
  name='Cloud Object Storage',
  type=offering_type
)

case = case_management_service.create_case(
  type='technical',
  subject='Example technical case',
  description='This is an example case description. This is where the problem would be described.',
  offering=offering_payload,
  severity=4,
).get_result()

print(json.dumps(case, indent=2))
offeringType, _ := caseManagementService.NewOfferingType(
  casemanagementv1.OfferingTypeGroupCRNServiceNameConst,
  "cloud-object-storage",
)
offeringPayload, _ := caseManagementService.NewOffering(
  "Cloud Object Storage",
  offeringType,
)

createCaseOptions := caseManagementService.NewCreateCaseOptions(
  "technical",
  "Example technical case",
  "This is an example case description. This is where the problem would be described.",
)
createCaseOptions.SetSeverity(4)
createCaseOptions.SetOffering(offeringPayload)

caseVar, response, err := caseManagementService.CreateCase(createCaseOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(caseVar, "", "  ")
fmt.Println(string(b))

Adding a resource to a support case by using the API

You can programmatically add a resource to a support case by using the API as shown in the following sample request. For more information, see the Case Management API reference.

curl -X PUT '/case-management/v1/cases/{case_number}/resources' -H 'Authorization: TOKEN' -d '{
  "crn": "296878",
  "note": "This resource does not work"
}'
AddResourceOptions addResourceOptions = new AddResourceOptions.Builder()
  .caseNumber(caseNumber)
  .crn(resourceCrn)
  .note("This resource is the service that is having the problem.")
  .build();

Response<Resource> response = service.addResource(addResourceOptions).execute();
Resource resource = response.getResult();

System.out.println(resource);
const params = {
  caseNumber: caseNumber,
  crn: resourceCrn,
  note: 'This resource is the service that is having the problem.',
};

caseManagementService.addResource(params)
  .then(res => {
    console.log(JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
resource = case_management_service.add_resource(
  case_number=case_number,
  crn=resource_crn,
  note='This resource is the service that is having the problem.',
).get_result()

print(json.dumps(resource, indent=2))
addResourceOptions := caseManagementService.NewAddResourceOptions(
  caseNumber,
)
addResourceOptions.SetCRN(resourceCRN)
addResourceOptions.SetNote("This resource is the service that is having the problem.")

resource, response, err := caseManagementService.AddResource(addResourceOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(resource, "", "  ")
fmt.Println(string(b))

Supported file types for cases

When you create a case, you can attach a file. The following file types are supported:

7z, ace, ams, arm, asp, bash, history, bkp, big, bmp, bz2, ca, ca-bundle, ca-crt, cabundle, cap, cer, cert, cfg, cnf, crt, csr, csv, dat, dbs, debug, dib, dmesg, dmp, doc, docx, dotx, dump, email, eml, emz, env, eps, error, evt, evtx, fragment, gif, gz, gz_aa, gz_ab, gz_ac, har, hosts, htaccess, html, iaf, ics, id, img, info, jpb, jpe, jpeg, jpg, key, lic, log, logsm lon02, lst, lzh, mai, md5, mib, mjpg, msg, mso, odp, ods, odt, oft, openssh, out, ovf, ovpn, p7b, p7s, pages, pcap, pcf, pcx, pdb, pem, pfx, pic, pix, png, ppk, ppt, pptx, psd, psp, pspimage, pub_key, rar, raw, rdp, req, rpt, rtf, sjc03-raid-2, sjc03-raid-log-1, snag, sql, ssh, stats, sth, svg, sxc, tar, targz, tbz2, tcpdump, text, tgz, tgz-aa, tgz-ab, tgz-ac, tgz-ad, tgz-ae, tgz-af, tgz-ag, tgz-ah, tgz-ai, tgz-aj, tgz-ak, tgz-ak, tgz-al, tgz-al, tgz-am, tif, tiff, tip, trace, tsv, txt, ufo, vcf, vdx, vsdx, webarchive, wml, wps, wpz, wrf, wri, xcf, xlog, xlr, xls, xis, xism, xisx, xit, xml, xpm, xps, xslic, xz, yaml, zip, zipaa, zipx, zone