Skip to main content
Question

Is there any way to reopen a closed case through API or siemplify module in SecOps SOAR?

  • April 29, 2026
  • 3 replies
  • 24 views

harshal.thakor
Forum|alt.badge.img+2

We have requirement to change the case status through the data connector script. 

I am unable to find any function in siemplify module to reopen a case in Google SecOps SOAR. 

I have refered document: https://docs.cloud.google.com/chronicle/docs/soar/reference/siemplify-module#extract-config-params-siemplify

Can anyone guide me here?

3 replies

AymanC
Forum|alt.badge.img+14
  • Bronze 5
  • April 29, 2026

harshal.thakor
Forum|alt.badge.img+2

Thanks for the response.

Is there any function/module for the same to directly use it in connector script of SOAR IDE?


AymanC
Forum|alt.badge.img+14
  • Bronze 5
  • April 29, 2026

Hi ​@harshal.thakor,

 

Not that I know of, but the below should do the job, just add 2x parameters ‘CaseIDs’, and ‘Comment’.

from SiemplifyAction import SiemplifyAction
from SiemplifyUtils import output_handler
import json

@output_handler
def main():
siemplify = SiemplifyAction()
API_ROOT = siemplify.API_ROOT
siemplify.script_name = "Re-Open_Case"
output_message = ""

responses = []

try:
# Retrieve parameters
case_id = siemplify.parameters.get("Case IDs")
comment = siemplify.parameters.get("Comment", "")

# Prepare request payload
payload = {
"reopenComment": comment,
"casesIds": [case_id]
}

siemplify.LOGGER.info(f"Request Payload for case {case_id}:\n{json.dumps(payload, indent=4)}")

# Make the POST request
url = f"{API_ROOT}/external/v1/dynamic-cases/ExecuteBulkReopenCase"
response = siemplify.session.post(url, json=payload)
response.raise_for_status()

# Parse and store response
response_data = response.json()
responses.append({
"case_id": case_id,
"response": response_data
})

output_message = json.dumps(responses, indent=4)

except Exception as e:
error_message = f"Error executing action. Reason: {e}"

if hasattr(e, 'response') and e.response is not None:
try:
error_body = e.response.text
siemplify.LOGGER.error(f"HTTP error response:\n{error_body}")
except Exception as inner_e:
siemplify.LOGGER.error(f"Failed to parse error body: {inner_e}")

siemplify.LOGGER.error(error_message)
siemplify.LOGGER.exception(e)
siemplify.end(error_message, str(e))
return

siemplify.LOGGER.info(f"Response:\n{output_message}")
siemplify.end(output_message, output_message)


if __name__ == "__main__":
main()

Kind Regards,

Ayman