Skip to content
Back to skills

Attio Hello World

ASecurity

Prove the smallest safe Attio REST connection by listing objects and validating the response envelope without changing CRM data. Use when checking a new token, workspace, or integration path. Trigger with "Attio hello world", "first Attio request", or "test Attio connection".

  • 2,719 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 21, 2026
ai-agentsapidocumentation

Works with

  • claude code
  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 21, 2026

npx -y skills add jeremylongshore/claude-code-plugins-plus --skill attio-hello-world --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Attio Hello World?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Attio Hello World
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jeremylongshore-attio-hello-world-bd88779a/badge)](https://www.skillsdirectory.com/skills/jeremylongshore-attio-hello-world-bd88779a)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: attio-hello-world
description: >-
  Prove the smallest safe Attio REST connection by listing objects and validating the response envelope without changing CRM data. Use when checking a new token, workspace, or integration path. Trigger with "Attio hello world", "first Attio request", or "test Attio connection".
argument-hint: "[repository-path] [workspace-alias]"
allowed-tools: Read, Glob, Grep, WebFetch, Write, Edit
version: 1.8.0
author: Jeremy Longshore <jeremy@intentsolutions.io>
license: MIT
tags:
- saas
- attio
- getting-started
model: inherit
effort: medium
compatibility: Designed for Claude Code
---
# Attio Verified First Read

## Overview

This skill proves authentication, workspace reachability, JSON parsing, and object discovery with one read-only request. It does not create a demonstration contact in a real CRM.

## Prerequisites

- A named repository and non-production or approved workspace
- A single-workspace access token or OAuth access token
- The `object_configuration:read` scope required by the object-list endpoint
- A runtime with HTTPS and JSON support

## Tool Discipline

Use `Read`, `Glob`, and `Grep` to inspect the local client, environment-variable names, and tests. Use `WebFetch` only for current official Attio documentation. Use `Write` or `Edit` after confirming the repository and intended implementation file.

## Current Contract

- Base URL: `https://api.attio.com/v2`.
- Send `Authorization: Bearer <access_token>`; Bearer authentication is the recommended form.
- Start with `GET /v2/objects` and validate a `{ data: [...] }` response.
- Keep the credential out of source, output, exceptions, and request logging.

## Authentication

Use a workspace API key for a single workspace or OAuth for an app serving multiple workspaces. Do not request write scopes for this proof.

## Instructions

1. Confirm the repository, runtime, workspace alias, secret source, and granted scope.
2. Add or inspect a tiny request wrapper with explicit base URL and Bearer header injection.
3. Request `/objects` with a bounded timeout and capture status plus content type.
4. On success, parse `data` and record only object slugs or counts that are safe to expose.
5. Assert that at least one expected object is visible to the workspace.
6. Add a fixture test for success plus 401, 403, and non-JSON failure handling.

## Approval Boundaries

Do not add create, update, assert, or delete calls to the first-read proof. Never print the access token or persist a raw workspace response.

## Output

Return the redacted configuration, status, response-envelope assertion, safe object summary, fixture-test result, and next integration boundary.

## Error Handling

| Condition | Response |
|---|---|
| 401 | Verify credential injection and replace an invalid token. |
| 403 | Confirm `object_configuration:read` without broadening other scopes. |
| Non-JSON response | Preserve status/content type and stop parsing. |
| Unexpected workspace data | Stop and verify workspace identity. |

## Examples

Input:

```text
workspace=development; request=GET /v2/objects; writes=forbidden
```

Expected handoff:

```text
auth=pass; envelope=pass; expected-object=present; secrets-exposed=0
```

## Resources

- [Skill-specific official documentation](references/official-docs.md)
- [REST API overview](https://docs.attio.com/rest-api/overview)
- [Authentication](https://docs.attio.com/rest-api/guides/authentication)
- [Objects and lists](https://docs.attio.com/docs/objects-and-lists)

Files in this skill

  • SKILL.md3.4 KB
  • references/official-docs.md2.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.