Repository: keephq/keep
Pull request: docs(providers): Added documentation for missing providers
 [Fixes #2033]
/claim #2033

<!-- 
Thanks for creating this pull request 🤗

Please make sure that the pull request is limited to one type (docs, feature, etc.) and keep it as small as possible. You can open multiple prs instead of opening a huge one.
-->


Closes #2033 




## ✅ Checks
<!-- Make sure your pr passes the CI checks and do check the following fields as needed - -->
- [x] My pull request adheres to the code style of this project
- [X] My code requires changes to the documentation
- [X ] I have updated the documentation as required
- [ X] All the tests have passed




Problem statement:
[📃 Docs]: Missing documentation for a few providers
Those providers are missing docs:

```
"service now",
"python",
"prometheus",
"gke",
"github",
"dynatrace",
"kafka",
"auth0",
"bash",
"keep",
"bigquery",
"parseable",
```

Python and bash are disabled for cloud, "keep" provider is a placeholder for alerts without a provider.

Hints from issue discussion:
/bounty 25
## 💎 $25 bounty [• Keep (YC W23)](https://console.algora.io/org/keephq)

### Steps to solve:
1. **Start working**: Comment `/attempt #2033` with your implementation plan
2. **Submit work**: Create a pull request including `/claim #2033` in the PR body to claim the bounty
3. **Receive payment**: 100% of the bounty is received 2-5 days post-reward. [Make sure you are eligible for payouts](https://docs.algora.io/bounties/payments#supported-countries-regions)

Thank you for contributing to keephq/keep!

**[Add a bounty](https://console.algora.io/org/keephq/bounties/community?fund=keephq%2Fkeep%232033)** • **[Share on socials](https://twitter.com/intent/tweet?text=%2425+bounty%21+%F0%9F%92%8E+https%3A%2F%2Fgithub.com%2Fkeephq%2Fkeep%2Fissues%2F2033&related=algoraio)**

<table>
<thead>
<tr>
<th>Attempt</th>
<th>Started (GMT+0)</th>
<th>Solution</th>
</tr>
</thead>
<tbody>
<tr>
<td>🟢 @asr2003</td>
<td>Sep 29, 2024, 2:00:56 PM</td>
<td>WIP</td>
</tr>
<tr>
<td>🟢 @sahilborse</td>
<td>Oct 5, 2024, 5:59:28 AM</td>
<td>WIP</td>
</tr>
</tbody>
</table>
@Matvey-Kuk I'd like to work on this.
/attempt #2033

Is it to update in docs/overview.md?

<div id="algora-attempt" />

| [Algora profile](https://console.algora.io/@/asr2003) | Completed bounties | Tech | Active attempts | Options |
| --- | --- | --- | --- | --- |
| @asr2003 | 5 bounties from 3 projects | <div align="center">JavaScript, Go, <br />HTML & more</div> | <div align="center"></div> | [Cancel attempt](https://console.algora.io/api/bounties/cm1nnbu2d0004la03ty8wmp00/cancel-attempt) |
@asr2003 thank you! It's to write docs for those providers.
@Matvey-Kuk Got it! I haven't checked this  dir docs/providers/documentation  :)
This issue is a follow-up for this PR: https://github.com/keephq/keep/pull/2034/files#diff-5e3398e47b06f1fa9941dcc4cf3717ecec1f38bcc676502cb7943c84a541f744R16 and I hope it will be merged.

Please as part of the PR also remove NON_DOCUMENTED_PROVIDERS array to make sure tests are passing well and picking up new provider docs :)
/attempt #2033


<div id="algora-attempt" />

<details>
  <summary>Options</summary>
  <ul>
    <li>
      <a href="https://console.algora.io/api/bounties/cm1nnbu2d0004la03ty8wmp00/cancel-attempt">
        Cancel my attempt
      </a>
    </li>
  </ul>
</details>
Hey @Matvey-Kuk  is the issue still open , can you please check ? So that I can get into it
@asr2003 hey, are you still working on this?
Yes, will draft PR by EOD

On Sun, 6 Oct, 2024, 1:27 pm Matvey Kukuy, ***@***.***> wrote:

> @asr2003 <https://github.com/asr2003> hey, are you still working on this?
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/keephq/keep/issues/2033#issuecomment-2395337601>, or
> unsubscribe
> <https://github.com/notifications/unsubscribe-auth/BGXZB6A4LSICOYUDTJDIAU3Z2DUP7AVCNFSM6AAAAABPBXRXN2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOJVGMZTONRQGE>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>

Commit message: Added documentation for missing providers: service now, python, prometheus, etc. [Fixes #2033]

Patch to review:
diff --git a/docs/providers/documentation/auth0-provider.mdx b/docs/providers/documentation/auth0-provider.mdx
new file mode 100644
index 0000000000..6d84a9aec0
--- /dev/null
+++ b/docs/providers/documentation/auth0-provider.mdx
@@ -0,0 +1,52 @@
+---
+title: "Auth0"
+sidebarTitle: "Auth0 Provider"
+description: "Auth0 provider allows integration with Auth0 for user authentication and authorization."
+---
+
+## Inputs
+
+- `client_id`: str : The Auth0 Client ID.
+- `client_secret`: str : The Auth0 Client Secret.
+- `audience`: str : The audience (API identifier) for which the token is intended.
+- `grant_type`: str : The grant type for authentication (e.g., `client_credentials`).
+
+## Outputs
+
+- `access_token`: str : The access token received from Auth0.
+- `expires_in`: int : The token expiration time in seconds.
+
+## Authentication Parameters
+
+- `domain`: The domain for your Auth0 tenant (e.g., `your-tenant.auth0.com`).
+- `client_id`: The Client ID for the application.
+- `client_secret`: The Client Secret associated with the application.
+- `audience`: API identifier for which the token is requested.
+
+## Connecting with the Provider
+
+1. Create an application in your Auth0 dashboard.
+2. Go to the "Applications" section, select your application, and get the `client_id` and `client_secret`.
+3. Define the `audience` (API identifier) for which you want to request a token.
+4. Provide the `grant_type` (typically `client_credentials` for machine-to-machine applications).
+
+## Example of usage
+
+```yaml
+workflow:
+  id: auth0-example
+  description: Auth0 example
+  triggers:
+    - type: manual
+  actions:
+    - name: auth0
+      provider:
+        type: auth0
+        config: "{{ providers.auth0test }}"
+        with:
+          client_id: "{{ secrets.auth0_client_id }}"
+          client_secret: "{{ secrets.auth0_client_secret }}"
+          audience: "https://api.yourapp.com"
+          grant_type: "client_credentials"
+##Usefull Links
+-[Auth0 API Documentation](https://auth0.com/docs/api)
\ No newline at end of file
diff --git a/docs/providers/documentation/bash-provider.mdx b/docs/providers/documentation/bash-provider.mdx
new file mode 100644
index 0000000000..972876e1d1
--- /dev/null
+++ b/docs/providers/documentation/bash-provider.mdx
@@ -0,0 +1,43 @@
+---
+title: "Bash"
+sidebarTitle: "Bash Provider"
+description: "Bash provider allows executing Bash commands in a workflow."
+---
+
+## Inputs
+
+- `script`: str : The Bash script or command to execute
+
+## Outputs
+
+- `stdout`: The standard output from the executed Bash command
+- `stderr`: The standard error output from the executed Bash command (if any)
+- `exit_code`: The exit code of the Bash command
+
+## Authentication Parameters
+
+_None required for local execution of Bash scripts._
+
+## Connecting with the Provider
+
+The Bash provider allows you to run Bash commands or scripts in your workflow. You can pass in any valid Bash command, and it will be executed in a local environment. This provider is currently disabled for cloud environments.
+
+## Example of usage
+
+```yaml
+workflow:
+  id: bash-example
+  description: Bash example
+  triggers:
+    - type: manual
+  actions:
+    - name: bash
+      provider:
+        type: bash
+        config: "{{ providers.bashtest }}"
+        with:
+          script: |
+            echo "Hello, World!"
+            ls -l
+## Usefull Links
+-[Bash Documentation](https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html)
\ No newline at end of file
diff --git a/docs/providers/documentation/bigquery-provider.mdx b/docs/providers/documentation/bigquery-provider.mdx
new file mode 100644
index 0000000000..d3750cab80
--- /dev/null
+++ b/docs/providers/documentation/bigquery-provider.mdx
@@ -0,0 +1,47 @@
+---
+title: "BigQuery"
+sidebarTitle: "BigQuery Provider"
+description: "BigQuery provider allows interaction with Google BigQuery for querying and managing datasets."
+---
+
+## Inputs
+
+- `query`: str : The SQL query to execute against the BigQuery dataset
+- `dataset`: str : The name of the dataset in BigQuery to use for the query
+- `project_id`: str : The Google Cloud project ID where the BigQuery dataset is located
+
+## Outputs
+
+- `result`: The results of the executed query, returned as a list of dictionaries.
+
+## Authentication Parameters
+
+- `service_account_key`: JSON key file for the Google Cloud service account with permissions to access BigQuery.
+
+## Connecting with the Provider
+
+1. Create a Google Cloud project and enable the BigQuery API.
+2. Create a service account in your Google Cloud project and download the JSON key file.
+3. Share the necessary datasets with the service account.
+4. Configure your provider using the `service_account_key`, `project_id`, and `dataset`.
+
+## Example of usage
+
+```yaml
+workflow:
+  id: bigquery-example
+  description: BigQuery example
+  triggers:
+    - type: manual
+  actions:
+    - name: bigquery
+      provider:
+        type: bigquery
+        config: "{{ providers.bigquerytest }}"
+        with:
+          query: "SELECT * FROM `my_dataset.my_table` WHERE condition = 'value'"
+          dataset: "my_dataset"
+          project_id: "my_project_id"
+
+##Usefull Links
+-[BigQuery Documentation](https://cloud.google.com/bigquery/docs)
\ No newline at end of file
diff --git a/docs/providers/documentation/dynatrace-provider.mdx b/docs/providers/documentation/dynatrace-provider.mdx
new file mode 100644
index 0000000000..3be5038c91
--- /dev/null
+++ b/docs/providers/documentation/dynatrace-provider.mdx
@@ -0,0 +1,48 @@
+---
+title: "Dynatrace"
+sidebarTitle: "Dynatrace Provider"
+description: "Dynatrace provider allows integration with Dynatrace for monitoring, alerting, and collecting metrics."
+---
+
+## Inputs
+
+- `metric_key`: str : The key of the Dynatrace metric to query.
+- `time_range`: str (optional) : Time range for the query (e.g., `last30mins`, `last24hours`, etc.)
+- `filters`: dict (optional) : Filters to apply to the Dynatrace query (e.g., entityId, host).
+
+## Outputs
+
+- `result`: The result of the Dynatrace metric query, returned in a JSON format.
+
+## Authentication Parameters
+
+- `api_token`: Dynatrace API token required to authenticate requests.
+- `dynatrace_url`: URL of the Dynatrace environment (e.g., `https://<your-environment-id>.live.dynatrace.com`).
+
+## Connecting with the Provider
+
+1. Log in to your Dynatrace account and navigate to "Settings" → "Integration" → "Dynatrace API."
+2. Generate an API token with appropriate permissions (e.g., Read metrics).
+3. Get your environment's Dynatrace URL.
+4. Configure the Dynatrace provider using the API token and Dynatrace URL.
+
+## Example of usage
+
+```yaml
+workflow:
+  id: dynatrace-example
+  description: Dynatrace example
+  triggers:
+    - type: manual
+  actions:
+    - name: dynatrace
+      provider:
+        type: dynatrace
+        config: "{{ providers.dynatracetest }}"
+        with:
+          metric_key: "builtin:host.cpu.usage"
+          time_range: "last24hours"
+          filters:
+            entityId: "HOST-12345"
+## Useful Links
+-[Dynatrace API Documentation](https://docs.dynatrace.com/docs/dynatrace-api)
\ No newline at end of file
diff --git a/docs/providers/documentation/github-provider.mdx b/docs/providers/documentation/github-provider.mdx
new file mode 100644
index 0000000000..425fd09f7c
--- /dev/null
+++ b/docs/providers/documentation/github-provider.mdx
@@ -0,0 +1,50 @@
+---
+title: "GitHub"
+sidebarTitle: "GitHub Provider"
+description: "GitHub provider allows integration with GitHub for managing repositories, issues, pull requests, and more."
+---
+
+## Inputs
+
+- `repo`: str : The name of the repository (e.g., `user/repo-name`)
+- `action`: str : The action to perform (e.g., `create_issue`, `close_pr`)
+- `issue_title`: str (optional) : The title for a new issue (required for `create_issue` action)
+- `issue_body`: str (optional) : The body content for the issue (optional but recommended for `create_issue`)
+- `pr_number`: int (optional) : The pull request number (required for `close_pr` action)
+
+## Outputs
+
+- `result`: The result of the GitHub API call, returned as a dictionary.
+
+## Authentication Parameters
+
+- `github_token`: A personal access token (PAT) from GitHub to authenticate API requests.
+  - You can generate a token at [GitHub Tokens](https://github.com/settings/tokens).
+
+## Connecting with the Provider
+
+1. Go to your GitHub account and navigate to **Settings > Developer Settings > Personal Access Tokens**.
+2. Generate a token with the required permissions (e.g., `repo`, `workflow`, etc.).
+3. Copy the token and provide it as `github_token` in the provider configuration.
+
+## Example of usage
+
+```yaml
+workflow:
+  id: github-example
+  description: GitHub example
+  triggers:
+    - type: manual
+  actions:
+    - name: github
+      provider:
+        type: github
+        config: "{{ providers.githubtest }}"
+        with:
+          repo: "user/repo-name"
+          action: "create_issue"
+          issue_title: "New Issue Title"
+          issue_body: "Description of the issue."
+
+## Useful Links
+-[GitHub REST API Documentation](https://docs.github.com/en/rest?apiVersion=2022-11-28)
\ No newline at end of file
diff --git a/docs/providers/documentation/gke-provider.mdx b/docs/providers/documentation/gke-provider.mdx
new file mode 100644
index 0000000000..3f9c16e969
--- /dev/null
+++ b/docs/providers/documentation/gke-provider.mdx
@@ -0,0 +1,48 @@
+---
+title: "Google Kubernetes Engine (GKE)"
+sidebarTitle: "GKE Provider"
+description: "GKE provider allows managing Google Kubernetes Engine clusters and related resources."
+---
+
+## Inputs
+
+- `cluster_name`: str : The name of the GKE cluster to manage
+- `action`: str : The action to perform on the cluster (e.g., `create`, `delete`, `scale`)
+- `node_count`: int (optional) : The number of nodes (used in scaling the cluster)
+
+## Outputs
+
+- `status`: The status of the action performed on the GKE cluster, returned as a response message.
+
+## Authentication Parameters
+
+- `gcp_credentials`: JSON containing Google Cloud credentials with the necessary permissions to manage GKE clusters.
+- `project_id`: Google Cloud project ID where the GKE cluster is deployed.
+- `zone`: The zone where the GKE cluster is hosted.
+
+## Connecting with the Provider
+
+1. Obtain Google Cloud credentials by following the steps in [Google Cloud's service account guide](https://cloud.google.com/iam/docs/creating-managing-service-account-keys).
+2. Ensure your service account has the necessary permissions to manage GKE clusters (`roles/container.admin`).
+3. Provide the `gcp_credentials`, `project_id`, and `zone` in your provider configuration.
+
+## Example of usage
+
+```yaml
+workflow:
+  id: gke-example
+  description: GKE example
+  triggers:
+    - type: manual
+  actions:
+    - name: gke
+      provider:
+        type: gke
+        config: "{{ providers.gketest }}"
+        with:
+          cluster_name: "my-cluster"
+          action: "create"
+          node_count: 3
+ 
+## Usefull Links
+-[Google Kubernetes Engine Documentation](https://cloud.google.com/kubernetes-engine/docs)
\ No newline at end of file
diff --git a/docs/providers/documentation/kafka-provider.mdx b/docs/providers/documentation/kafka-provider.mdx
new file mode 100644
index 0000000000..5c41693d93
--- /dev/null
+++ b/docs/providers/documentation/kafka-provider.mdx
@@ -0,0 +1,58 @@
+---
+title: "Kafka"
+sidebarTitle: "Kafka Provider"
+description: "Kafka provider allows integration with Apache Kafka for producing and consuming messages."
+---
+
+## Inputs
+
+- `topic`: str : The Kafka topic to produce/consume messages from.
+- `message`: str (optional) : The message to send to the Kafka topic when producing (not required for consuming).
+- `action`: str : The action to perform (`produce` or `consume`).
+
+## Outputs
+
+- `result`: The result of the action. If consuming, this will return the message(s) from the Kafka topic.
+
+## Authentication Parameters
+
+- `kafka_broker`: The URL of the Kafka broker (e.g., `localhost:9092` or the broker's public URL).
+- `kafka_client_id`: The client ID to authenticate the Kafka producer/consumer.
+- `kafka_security_protocol`: (Optional) Security protocol for Kafka (e.g., `PLAINTEXT`, `SSL`, `SASL_SSL`).
+- `kafka_sasl_mechanism`: (Optional) SASL mechanism for authentication (e.g., `PLAIN`, `SCRAM-SHA-256`).
+- `kafka_username` & `kafka_password`: (Optional) Username and password for SASL authentication if required.
+
+## Connecting with the Provider
+
+1. Set up a Kafka broker (or use an existing one) and make sure it is accessible.
+2. Get the broker URL (e.g., `localhost:9092` or a remote Kafka service URL).
+3. (Optional) If using secure communication, provide the security protocol, SASL mechanism, username, and password.
+4. Configure the provider with these parameters.
+
+## Example of usage
+
+```yaml
+workflow:
+  id: kafka-example
+  description: Kafka example
+  triggers:
+    - type: manual
+  actions:
+    - name: kafka-produce
+      provider:
+        type: kafka
+        config: "{{ providers.kafkatest }}"
+        with:
+          topic: "example-topic"
+          action: "produce"
+          message: "Hello, Kafka!"
+
+    - name: kafka-consume
+      provider:
+        type: kafka
+        config: "{{ providers.kafkatest }}"
+        with:
+          topic: "example-topic"
+          action: "consume"
+## Usefull Links
+-[Kafka Clients Documentation](https://kafka.apache.org/documentation/)
\ No newline at end of file
diff --git a/docs/providers/documentation/keep-provider.mdx b/docs/providers/documentation/keep-provider.mdx
new file mode 100644
index 0000000000..80636968fa
--- /dev/null
+++ b/docs/providers/documentation/keep-provider.mdx
@@ -0,0 +1,39 @@
+---
+title: "Keep"
+sidebarTitle: "Keep Provider"
+description: "Keep provider acts as a placeholder for alerts without a specific provider."
+---
+
+## Inputs
+
+- `alert_message`: str: The message to display in the alert
+- `severity`: str (optional): The severity level of the alert (e.g., `low`, `medium`, `high`)
+
+## Outputs
+
+_No outputs as this is a placeholder provider._
+
+## Authentication Parameters
+
+_None required for the Keep provider, as it acts as a placeholder for non-provider alerts._
+
+## Connecting with the Provider
+
+The Keep provider does not connect to any external service. It serves as a placeholder for cases where alerts do not need a specific provider.
+
+## Example of usage
+
+```yaml
+workflow:
+  id: keep-provider-example
+  description: Keep Provider example
+  triggers:
+    - type: manual
+  actions:
+    - name: keep-alert
+      provider:
+        type: keep
+        config: "{{ providers.keep }}"
+        with:
+          alert_message: "This is a placeholder alert."
+          severity: "low"
diff --git a/docs/providers/documentation/parseable-provider.mdx b/docs/providers/documentation/parseable-provider.mdx
new file mode 100644
index 0000000000..8660a1096e
--- /dev/null
+++ b/docs/providers/documentation/parseable-provider.mdx
@@ -0,0 +1,46 @@
+---
+title: "Bash"
+sidebarTitle: "Bash Provider"
+description: "Bash provider allows executing Bash scripts in the workflow."
+---
+
+## Inputs
+
+- `script`: str : Bash script to execute
+
+## Outputs
+
+- `result`: The output of the executed Bash script
+
+## Authentication Parameters
+
+_None required for local execution._
+
+## Limitations
+
+- The Bash provider is currently **disabled for cloud execution** due to security concerns regarding script execution in a cloud environment. It is recommended to use this provider locally or in a controlled environment.
+
+## Connecting with the Provider
+
+The Bash provider allows you to run Bash scripts as actions. Ensure you have the necessary permissions to execute scripts in your environment.
+
+## Example of usage
+
+```yaml
+workflow:
+  id: bash-example
+  description: Bash example
+  triggers:
+    - type: manual
+  actions:
+    - name: bash
+      provider:
+        type: bash
+        config: "{{ providers.bashtest }}"
+        with:
+          script: |
+            echo "Hello, world!"
+
+
+## Usefull Links
+-[Parseable API Documentation](https://www.parseable.com/docs/api)
\ No newline at end of file
diff --git a/docs/providers/documentation/prometheus-provider.mdx b/docs/providers/documentation/prometheus-provider.mdx
new file mode 100644
index 0000000000..f4bd6e5fb1
--- /dev/null
+++ b/docs/providers/documentation/prometheus-provider.mdx
@@ -0,0 +1,47 @@
+---
+title: "Prometheus"
+sidebarTitle: "Prometheus Provider"
+description: "Prometheus provider allows integration with Prometheus for monitoring and alerting purposes."
+---
+
+## Inputs
+
+- `query`: str : The Prometheus query to execute
+- `time_range`: str (optional) : Time range for the query in Prometheus' duration format (e.g., `1h`, `30m`)
+
+## Outputs
+
+- `result`: The result of the Prometheus query, returned in a dictionary format containing the data.
+
+## Authentication Parameters
+
+- `prometheus_url`: URL of the Prometheus server where the queries will be executed.
+- `api_token`: API token for secure access to Prometheus server (optional if server is open).
+
+## Connecting with the Provider
+
+1. Set up a Prometheus server and make sure it's running.
+2. Get the `prometheus_url` where your Prometheus instance is accessible.
+3. (Optional) Obtain the API token from your Prometheus configuration if it's protected.
+4. Provide these values in the provider configuration.
+
+## Example of usage
+
+```yaml
+workflow:
+  id: prometheus-example
+  description: Prometheus example
+  triggers:
+    - type: manual
+  actions:
+    - name: prometheus
+      provider:
+        type: prometheus
+        config: "{{ providers.prometheustest }}"
+        with:
+          query: "up"
+          time_range: "1h"
+
+## Useful Links
+-[Prometheus Querying API Documentation](https://prometheus.io/docs/prometheus/latest/querying/api/)
+-[Prometheus Official Documentation](https://prometheus.io/docs/introduction/overview/)
\ No newline at end of file
diff --git a/docs/providers/documentation/python-provider.mdx b/docs/providers/documentation/python-provider.mdx
new file mode 100644
index 0000000000..fe539366b6
--- /dev/null
+++ b/docs/providers/documentation/python-provider.mdx
@@ -0,0 +1,48 @@
+---
+title: "Python"
+sidebarTitle: "Python Provider"
+description: "Python provider allows executing Python code snippets."
+---
+
+## Inputs
+
+- `script`: str: Python script to execute
+
+## Outputs
+
+- `result`: The output of the Python script
+
+## Authentication Parameters
+
+_None required for local execution._
+
+## Limitations
+
+- The Python provider is currently disabled for cloud execution. This means that Python scripts cannot be executed in a cloud environment.
+- Users must ensure that the scripts are compatible with the local execution environment.
+
+## Connecting with the Provider
+
+The Python provider allows you to run small Python scripts. 
+
+## Example of usage
+
+```yaml
+workflow:
+  id: python-example
+  description: Python example
+  triggers:
+    - type: manual
+  actions:
+    - name: python
+      provider:
+        type: python
+        config: "{{ providers.pythontest }}"
+        with:
+          script: |
+            print("Hello, world!")
+
+
+## Usefull Links
+
+-[Python Documentation](https://docs.python.org/3/)
\ No newline at end of file
diff --git a/docs/providers/documentation/service-now-provider.mdx b/docs/providers/documentation/service-now-provider.mdx
new file mode 100644
index 0000000000..4e54a20760
--- /dev/null
+++ b/docs/providers/documentation/service-now-provider.mdx
@@ -0,0 +1,48 @@
+---
+title: "Service Now"
+sidebarTitle: "Service Now Provider"
+description: "Service Now provider allows sending notifications and updates to Service Now."
+---
+
+## Inputs
+
+- message: str: The message to send to Service Now
+- incident_id: str (optional): The ID of the incident to update
+- urgency: str (optional): The urgency level of the message
+
+## Outputs
+
+_No information yet, feel free to contribute it using the "Edit this page" link at the bottom of the page._
+
+## Authentication Parameters
+
+- `api_key`: API key required to authenticate with the Service Now instance.
+- `instance_url`: URL of the Service Now instance.
+
+## Connecting with the Provider
+
+1. Go to your Service Now account.
+2. Navigate to "API Keys" in your user settings.
+3. Create or copy your API key and the instance URL.
+4. Configure your provider using these values.
+
+## Example of usage
+
+```yaml
+workflow:
+  id: service-now-example
+  description: Service Now example
+  triggers:
+    - type: manual
+  actions:
+    - name: service-now
+      provider:
+        type: service-now
+        config: "{{ providers.servicenowtest }}"
+        with:
+          message: "Incident created"
+          incident_id: "INC001234"
+          urgency: "High"
+
+## Useful Links
+- [Service Now API documentation](https://docs.servicenow.com/bundle/xanadu-api-reference/page/build/applications/concept/api-rest.html)
\ No newline at end of file


Code review comments:
diff_hunk: @@ -0,0 +1,39 @@
+---
+title: "Keep"
+sidebarTitle: "Keep Provider"
+description: "Keep provider acts as a placeholder for alerts without a specific provider."
path: docs/providers/documentation/keep-provider.mdx
text: @user1:
It actually allows you to query the alerts you have in Keep, can we adjust that?

@author:
Will add this also

diff_hunk: @@ -0,0 +1,52 @@
+---
+title: "Auth0"
+sidebarTitle: "Auth0 Provider"
+description: "Auth0 provider allows integration with Auth0 for user authentication and authorization."
path: docs/providers/documentation/auth0-provider.mdx
text: @user1:
This is actually inaccurate. Can you please adjust? 

@author:
Yep, will  update it