AppSheet

Integration version: 2.0

Use Cases

Perform CRUD actions.

Configure AppSheet integration in Google Security Operations SOAR

For detailed instructions on how to configure an integration in Google Security Operations SOAR, see Configure integrations.

Integration parameters

Use the following parameters to configure the integration:

Parameter name Type Default value Is mandatory Description
API Root String https://api.appsheet.com Yes API root of the AppSheet instance.
App ID String N/A Yes ID of the AppSheet App.
Access Token Password N/A Yes Access Token of the AppSheet App.
Verify SSL Checkbox Checked Yes If enabled, verify the SSL certificate for the connection to the AppSheet server is valid.

Actions

Add Record

Description

Add a record to a table in AppSheet.

Parameters

Parameter name Type Default value Is mandatory Description
Table Name String N/A Yes Specify the name of the table to which you want to add a new record.
Record JSON Object JSON Yes Specify the JSON object of the record that needs to be added.

Run on

This action doesn't run on entities.

Action results

Script result
Script result name Value options Example
is_success True/False is_success=False
Case wall
Result type Description Type
Output message*

The action should not fail nor stop a playbook execution:

If data is available (is_success = true): "Successfully added new record in table "{table}" in AppSheet.

The action should fail and stop a playbook execution:

If a fatal error, like wrong credentials, no connection to the server, other is reported: "Error executing action "Add Record". Reason: {0}''.format(error.Stacktrace)

If no data in response: "Error executing action "Add Record". Reason: Invalid payload was provided. Please check the spelling of Table Name and structure of the JSON object of the record.'

If "Message" in the response: "Error executing action "Add Record". Reason: {0}''.format(Message)

Invalid JSON object: Error executing action "Add Record". Reason: Invalid JSON object provided. Please check the structure.

General

Delete Record

Description

Delete a record in a table in AppSheet.

Parameters

Parameter name Type Default value Is mandatory Description
Table Name String N/A Yes Specify the name of the table in which you want to delete a record.
Record JSON Object JSON Yes Specify the JSON object of the record that needs to be deleted. You only need to provide the unique identifier key of the record.

Run on

This action doesn't run on entities.

Action results

Script result
Script result name Value options Example
is_success True/False is_success=False
Case wall
Result type Description Type
Output message*

The action should not fail nor stop a playbook execution:

If data is available (is_success = true): "Successfully deleted record in table "{table}" in AppSheet.

If status code 200, but rowNumber is null (is_success=true): Provided record didn't exist in table "{table}" in AppSheet.

The action should fail and stop a playbook execution:

If a fatal error, like wrong credentials, no connection to the server, other is reported: "Error executing action "Delete Record". Reason: {0}''.format(error.Stacktrace)

If no data in response: "Error executing action "Delete Record". Reason: Invalid payload was provided. Please check the spelling of Table Name and structure of the JSON object of the record.'

If "Message" in the response: "Error executing action "Delete Record". Reason: {0}''.format(Message)

Error executing action "Delete Record". Reason: Invalid JSON object provided. Please check the structure.

General

List Tables

Description

List available tables in an app in AppSheet.

Parameters

Parameter name Type Default value Is mandatory Description
Filter Logic DDL

Equal

Possible values:

  • Equal
  • Contains
No Specify what filter logic should be applied.
Filter Value String N/A No Specify what value should be used in the filter. If "Equal" is selected, action will try to find the exact match among items and if "Contains" is selected, action will try to find items that contain that substring. If nothing is provided in this parameter, the filter will not be applied.
Max Tables To Return Integer 50 No Specify how many tables to return. Default: 50.

Run on

This action doesn't run on entities.

Action results

Script result
Script result name Value options Example
is_success True/False is_success=False
JSON Result
{
    "Tables": [
        {
            "name": "Hash identificiation",
            "id": "Hash identificiation"
        }
    ]
}
Case wall
Result type Description Type
Output message*

The action should not fail nor stop a playbook execution:

If found results (is_success = true): "Successfully found tables for the provided criteria in AppSheet.

If not found results (is_success = true): "No tables were found for the provided criteria in AppSheet.

The action should fail and stop a playbook execution:

If a fatal error, like wrong credentials, no connection to the server, other is reported: "Error executing action "List Tables". Reason: {0}''.format(error.Stacktrace)

General
Case Wall Table

Name: Available Tables

Columns:

  • ID
  • Name
General

Ping

Description

Test connectivity to AppSheet with parameters provided at the integration configuration page in the Google Security Operations Marketplace tab.

Parameters

N/A

Run on

This action doesn't run on entities.

Action results

Script result
Script result name Value options Example
is_success True/False is_success=False
Case wall
Result type Description Type
Output message*

The action should not fail nor stop a playbook execution:

If successful: "Successfully connected to the AppSheet server with the provided connection parameters!"

The action should fail and stop a playbook execution:

If not successful: "Failed to connect to the AppSheet server! Error is {0}".format(exception.stacktrace)

General

Search Records

Description

Search records in a table in AppSheet.

Parameters

Parameter name Type Default value Is mandatory Description
Table Name String N/A Yes Specify the name of the table for which you want to retrieve details.
Selector Query String N/A No Specify the selector query, which will be used to limit results. If nothing is provided, action will return all records.

Run on

This action doesn't run on entities.

Action results

Script result
Script result name Value options Example
is_success True/False is_success=False
Case wall
Result type Description Type
Output message*

The action should not fail nor stop a playbook execution:

If data is available (is_success = true): "Successfully retrieved records based on the provided criteria from table "{table}" in AppSheet.

If no data is available (is_success=false): No records were found based on the provided criteria in table "{table}" in AppSheet.

The action should fail and stop a playbook execution:

If a fatal error, like wrong credentials, no connection to the server, other is reported: "Error executing action "Search Records". Reason: {0}''.format(error.Stacktrace)

If "Message" in the response: "Error executing action "Search Records". Reason: {0}''.format(Message)

General
Case Wall Table Name: Records General

Update Record

Description

Update a record in a table in AppSheet.

Parameters

Parameter name Type Default value Is mandatory Description
Table Name String N/A Yes Specify the name of the table in which you want to update a record.
Record JSON Object JSON Yes Specify the JSON object of the record that needs to be updated. You need to provide the unique identifier key and fields that you want to update.

Run on

This action doesn't run on entities.

Action results

Script result
Script result name Value options Example
is_success True/False is_success=False
Case wall
Result type Description Type
Output message*

The action should not fail nor stop a playbook execution:

If data is available (is_success = true):"Successfully updated record in table "{table}" in AppSheet.

The action should fail and stop a playbook execution:

If fatal error, like wrong credentials, no connection to server, other: "Error executing action "Update Record". Reason: {0}''.format(error.Stacktrace)

If no data in response: "Error executing action "Update Record". Reason: Invalid payload was provided. Please check the spelling of Table Name and structure of the JSON object of the record.'

If "Message" in the response: "Error executing action "Update Record". Reason: {0}''.format(Message)

Error executing action "Update Record". Reason: Invalid JSON object provided. Please check the structure.

General