> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Intercom Scroll Over All Companies: Inputs, Cost & CLI

> Scroll over all companies. Intercom Intercom Scroll Over All Companies docs include request fields, response shape, pricing notes, and Deepline CLI examples.

## Run in Enrichment Spreadsheet

<Info>
  Use this function as a column step in `deepline enrich`.
</Info>

```bash theme={null}
deepline enrich --input leads.csv --output leads.enriched.csv --with 'result=intercom_scroll_over_all_companies:{}' --json
```

<Tip>
  Map payload values to spreadsheet columns with `{{column_name}}` placeholders.
</Tip>

## Input Schema

| Name                   | Type     | Required | Default | Description |
| ---------------------- | -------- | -------- | ------- | ----------- |
| `payload.scroll_param` | `string` | No       |         |             |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "The `list all companies` functionality does not work well for huge datasets, and can result in errors and performance problems when paging deeply. The Scroll API provides an efficient mechanism for iterating over all companies in a dataset. - Each app can only have 1 scroll open at a time. You'll get an error message if you try to have more than one open per app. - If the scroll isn't used for 1 minute, it expires and calls with that scroll param will fail - If the end of the scroll is reached, \"companies\" will be empty and the scroll parameter will expire {% admonition type=\"info\" name=\"Scroll Parameter\" %} You can get the first page of companies by simply sending a GET request to the scroll endpoint. For subsequent requests you will need to use the scroll parameter from the response. {% /admonition %} {% admonition type=\"danger\" name=\"Scroll network timeouts\" %} Since scroll is often used on large datasets network errors such as timeouts can be encountered. When this occurs you will see a HTTP 500 error with the following message: \"Request failed due to an internal network error. Please restart the scroll operation.\" If this happens, you will need to restart your scroll query: It is not possible to continue from a specific point when using scroll. {% /admonition %}",
    "properties": {
      "scroll_param": {
        "type": "string"
      }
    },
    "required": [],
    "additionalProperties": false
  }
  ```
</details>

## Output Schema

| Name          | Type     | Required | Default | Description                                                                                                                                                                                      |
| ------------- | -------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `result.data` | `object` | Yes      |         | Companies allow you to represent organizations using your product. Each company will have its own description and be associated with contacts. You can fetch, create, update and list companies. |
| `result.meta` | `object` | No       |         | Additional response metadata (status, paging).                                                                                                                                                   |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": [
          "object",
          "null"
        ],
        "description": "Companies allow you to represent organizations using your product. Each company will have its own description and be associated with contacts. You can fetch, create, update and list companies.",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of object - `list`",
            "enum": [
              "list"
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Companies allow you to represent organizations using your product. Each company will have its own description and be associated with contacts. You can fetch, create, update and list companies.",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Value is `company`",
                  "enum": [
                    "company"
                  ]
                },
                "id": {
                  "type": "string",
                  "description": "The Intercom defined id representing the company."
                },
                "name": {
                  "type": "string",
                  "description": "The name of the company."
                },
                "app_id": {
                  "type": "string",
                  "description": "The Intercom defined code of the workspace the company is associated to."
                },
                "plan": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "Value is always \"plan\""
                    },
                    "id": {
                      "type": "string",
                      "description": "The id of the plan"
                    },
                    "name": {
                      "type": "string",
                      "description": "The name of the plan"
                    }
                  },
                  "additionalProperties": false
                },
                "company_id": {
                  "type": "string",
                  "description": "The company id you have defined for the company."
                },
                "remote_created_at": {
                  "type": "integer",
                  "description": "The time the company was created by you."
                },
                "created_at": {
                  "type": "integer",
                  "description": "The time the company was added in Intercom."
                },
                "updated_at": {
                  "type": "integer",
                  "description": "The last time the company was updated."
                },
                "last_request_at": {
                  "type": "integer",
                  "description": "The time the company last recorded making a request."
                },
                "size": {
                  "type": "integer",
                  "description": "The number of employees in the company."
                },
                "website": {
                  "type": "string",
                  "description": "The URL for the company website."
                },
                "industry": {
                  "type": "string",
                  "description": "The industry that the company operates in."
                },
                "monthly_spend": {
                  "type": "integer",
                  "description": "How much revenue the company generates for your business."
                },
                "session_count": {
                  "type": "integer",
                  "description": "How many sessions the company has recorded."
                },
                "user_count": {
                  "type": "integer",
                  "description": "The number of users in the company."
                },
                "custom_attributes": {
                  "type": "object",
                  "description": "The custom attributes you have set on the company.",
                  "additionalProperties": {
                    "type": "string"
                  }
                },
                "tags": {
                  "type": "object",
                  "description": "The list of tags associated with the company",
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "The type of the object",
                      "enum": [
                        "tag.list"
                      ]
                    },
                    "tags": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "description": "A tag allows you to label your contacts, companies, and conversations and list them using that tag.",
                        "properties": {
                          "type": {
                            "type": "string",
                            "description": "value is \"tag\""
                          },
                          "id": {
                            "type": "string",
                            "description": "The id of the tag"
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the tag"
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "segments": {
                  "type": "object",
                  "description": "The list of segments associated with the company",
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "The type of the object",
                      "enum": [
                        "segment.list"
                      ]
                    },
                    "segments": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "description": "A segment is a group of your contacts defined by the rules that you set.",
                        "properties": {
                          "type": {
                            "type": "string",
                            "description": "The type of object.",
                            "enum": [
                              "segment"
                            ]
                          },
                          "id": {
                            "type": "string",
                            "description": "The unique identifier representing the segment."
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the segment."
                          },
                          "created_at": {
                            "type": "integer",
                            "description": "The time the segment was created."
                          },
                          "updated_at": {
                            "type": "integer",
                            "description": "The time the segment was updated."
                          },
                          "person_type": {
                            "type": "string",
                            "description": "Type of the contact: contact (lead) or user.",
                            "enum": [
                              "contact",
                              "user"
                            ]
                          },
                          "count": {
                            "type": [
                              "integer",
                              "null"
                            ],
                            "description": "The number of items in the user segment. It's returned when `include_count=true` is included in the request."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            }
          },
          "pages": {
            "type": [
              "object",
              "null"
            ],
            "description": "Cursor-based pagination is a technique used in the Intercom API to navigate through large amounts of data. A \"cursor\" or pointer is used to keep track of the current position in the result set, allowing the API to return the data in small chunks or \"pages\" as needed.",
            "properties": {
              "type": {
                "type": "string",
                "description": "the type of object `pages`.",
                "enum": [
                  "pages"
                ]
              },
              "page": {
                "type": "integer",
                "description": "The current page"
              },
              "next": {
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "per_page": {
                    "type": "integer",
                    "description": "The number of results to fetch per page."
                  },
                  "starting_after": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The cursor to use in the next request to get the next page of results."
                  }
                },
                "additionalProperties": false
              },
              "per_page": {
                "type": "integer",
                "description": "Number of results per page"
              },
              "total_pages": {
                "type": "integer",
                "description": "Total number of pages"
              }
            },
            "additionalProperties": false
          },
          "total_count": {
            "type": [
              "integer",
              "null"
            ],
            "description": "The total number of companies"
          },
          "scroll_param": {
            "type": "string",
            "description": "The scroll parameter to use in the next request to fetch the next page of results."
          }
        },
        "additionalProperties": false
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": true
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Advanced: Direct CLI

<Info>
  Use direct execution for single payload debugging.
</Info>

```bash theme={null}
deepline tools execute intercom_scroll_over_all_companies --payload '{}' --json
```

### CLI flags

| Flag                        | Description                                         |
| --------------------------- | --------------------------------------------------- |
| `--json`                    | Print machine-readable output.                      |
| `--wait`                    | Wait for terminal provider status when supported.   |
| `--debug`                   | Enable wait mode with additional status/log output. |
| `--wait-timeout SECONDS`    | Max seconds to wait in wait mode.                   |
| `--poll-interval SECONDS`   | Polling interval in seconds during wait mode.       |
| `--timeout SECONDS`         | Request timeout in seconds.                         |
| `--connect-timeout SECONDS` | Connection timeout in seconds.                      |

## Cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.
* Billing mode: `no_bill`.
