MattermostAskUser
Ask a user a question on Mattermost and expect a response. The response can also close a task (might be conditional) in a playbook.
python · Mattermost
Source
import demistomock as demisto # noqa: F401 from CommonServerPython import * # noqa: F401 DATE_FORMAT = "%Y-%m-%dT%H:%M:%SZ" # pragma: no cover def main(): res = demisto.executeCommand( "addEntitlement", { "persistent": demisto.get(demisto.args(), "persistent"), "replyEntriesTag": demisto.get(demisto.args(), "replyEntriesTag"), }, ) if isError(res[0]): demisto.results(res) sys.exit(0) entitlement = demisto.get(res[0], "Contents") option1 = demisto.get(demisto.args(), "option1") if not option1: option1 = "yes" option2 = demisto.get(demisto.args(), "option2") if not option2: option2 = "no" entitlementString = entitlement + "@" + demisto.investigation()["id"] args = demisto.args() lifetime = args.get("lifetime", "1 day") try: parsed_date = arg_to_datetime("in " + lifetime) assert parsed_date is not None, f"Could not parse in {lifetime}" expiry = datetime.strftime(parsed_date, DATE_FORMAT) except Exception: demisto.debug(f'Could not parse the argument "lifetime" , got {lifetime}. will use "in 1 day" instead') parsed_date = arg_to_datetime("in 1 day") assert parsed_date is not None expiry = datetime.strftime(parsed_date, DATE_FORMAT) default_response = args.get("default_response") reply = args.get("reply") if task := demisto.get(args, "task"): entitlementString += "|" + task message = f'**{args.get("message")}** - Please reply to this thread with `{option1}` or `{option2}`.' message_dict = json.dumps( { "message": message, "entitlement": entitlementString, "reply": reply, "expiry": expiry, "default_response": default_response, } ) return_results( demisto.executeCommand( "send-notification", { "to": demisto.get(demisto.args(), "user"), "message": message_dict, "ignoreAddURL": "true", "mattermost_ask": True, "using-brand": "MattermostV2", }, ) ) if __name__ == "__builtin__" or __name__ == "builtins": main()
README
Ask a user a question on Mattermost and expect a response. The response can also close a task (might be conditional) in a playbook.
Script Data
| Name | Description |
|---|---|
| Script Type | python3 |
| Tags | mattermost |
| Cortex XSOAR Version | 5.0.0 |
Dependencies
This script uses the following commands and scripts.
- send-notification
Inputs
| Argument Name | Description |
|---|---|
| user | The Mattermost user to ask. Can be either an email or Mattermost username. |
| message | The message to ask the user. |
| option1 | First option for a user reply. “yes” is the default. |
| option2 | Second option for the user reply. “no” is the default. |
| task | Which task should we close with the reply. If none, then no playbook tasks will be closed. |
| replyEntriesTag | Tag to add on email reply entries. |
| persistent | Indicates whether to use one-time entitlement or a persistent one. |
| reply | The reply to send to the user. Use the templates {user} and {response} to incorporate these in the reply. (i.e., “Thank you **{user}**. You have answered **{response}**.”). |
| lifetime | Time until the question expires. For example - 1 day. When it expires, a default response is sent. Default value is 1 day. |
| defaultResponse | Default response in case the question expires. |
Outputs
There are no outputs for this script.