Browse documentation

Start here

Quickstart: see your first customer story

Connect one application, identify a test customer, and follow an error across their Anectico timeline.

This quickstart proves the part of Anectico that matters: signals from one application become one connected story for the customer they affected.

You will send a trace and a test error, attach both to a customer, and inspect the result in the dashboard. Allow about ten minutes.

Before you start

You need:

  • access to an Anectico organization;
  • a project in Settings → Projects; and
  • a project-scoped API key with ingest:write and analytics:write in Settings → Access.

This example needs both scopes: traces and errors use ingest:write, while Identify uses the diagnostic capture surface protected by analytics:write. Choose Custom access when creating the key; the Ingest only preset contains only ingest:write.

Keep the API key in an environment variable. Do not put it in source code.

export ANECTICO_API_KEY="an_..."

1. Install an SDK

Choose the language used by your service. During early access, use the package artifact or repository access supplied during onboarding. The JavaScript and Python examples below install local artifacts so the commands work before the public registries open.

JavaScript / TypeScript

mkdir anectico-quickstart && cd anectico-quickstart
npm init -y
npm install /path/to/anectico-sdk.tgz

Python

mkdir anectico-quickstart && cd anectico-quickstart
python -m venv .venv
source .venv/bin/activate
pip install /path/to/anectico.whl

Go

mkdir anectico-quickstart && cd anectico-quickstart
go mod init example.com/anectico-quickstart
go get github.com/anectico/anectico/sdks/go@main

Using a browser or mobile stack? Start with Choose an integration.

2. Start Anectico and identify a customer

JavaScript / TypeScript

import { init } from '@anectico/sdk';
import { AnalyticsClient } from '@anectico/sdk/analytics';

const apiKey = process.env.ANECTICO_API_KEY;
if (!apiKey) throw new Error('ANECTICO_API_KEY is required');

const anectico = await init({
  apiKey,
  serviceName: 'quickstart',
  environment: 'development',
});
const events = new AnalyticsClient({
  endpoint: 'https://api.anectico.com',
  apiKey,
});

events.identify('quickstart-user', {
  email: 'quickstart@example.com',
  plan: 'test',
});

const span = anectico.startSpan('checkout');
anectico.captureError(new Error('quickstart payment failure'));
span.end();

await events.stop();
await anectico.stop();

Save this as quickstart.mjs.

Python

import os
import anectico

with anectico.AnecticoClient(
    api_key=os.environ['ANECTICO_API_KEY'],
    service_name='quickstart',
    environment='development',
) as client:
    client.identify('quickstart-user', {
        'email': 'quickstart@example.com',
        'plan': 'test',
    })
    with client.start_span('checkout'):
        client.capture_error(RuntimeError('quickstart payment failure'))

Save this as quickstart.py.

Go

package main

import (
	"context"
	"errors"
	"os"

	anectico "github.com/anectico/anectico/sdks/go"
)

func main() {
	ctx := context.Background()
	client, err := anectico.New(
		anectico.WithAPIKey(os.Getenv("ANECTICO_API_KEY")),
		anectico.WithServiceName("quickstart"),
		anectico.WithEnvironment("development"),
	)
	if err != nil {
		panic(err)
	}

	if err := client.Start(ctx); err != nil {
		panic(err)
	}
	defer client.Stop(ctx)

	if err := client.Identify(ctx, "quickstart-user", map[string]any{
		"email": "quickstart@example.com",
		"plan":  "test",
	}); err != nil {
		panic(err)
	}

	traceCtx, span := client.StartSpan(ctx, "checkout")
	client.CaptureError(traceCtx, errors.New("quickstart payment failure"))
	span.End()
}

Save this as main.go.

Run the program once:

JavaScript / TypeScript

node quickstart.mjs

Python

python quickstart.py

Go

go run .

3. Open the customer story

In Anectico:

  1. Select the same project and the development environment.
  2. Open Customers.
  3. Search for quickstart@example.com or quickstart-user.
  4. Open the customer.

The activity timeline should contain the error and trace you just sent. Open the error to see its Issue, then return to the customer to keep the investigation anchored to the person.

4. Ask Anectico what happened

Select Explain this person on the customer page, or open Investigate and ask:

What happened to quickstart@example.com?

Anectico gathers matching evidence and links each claim back to the underlying signal.

If nothing appears

Most setup failures are an API key, project, environment, or shutdown/flush mismatch. Follow No data is appearing before changing sampling or transport settings.

Next