Como usar o ForeverLink
O ForeverLink é um inventário de links numerados que podes alterar depois de imprimir. Gera IDs (1…N), imprime a URL pública do ForeverLink num QR, NFC ou sticker, e depois muda o destino HTTPS no painel, CSV, API (Scale) ou no chat de suporte.
URL pública de cada ID:
https://foreverlink.app/r/{sua-org}/{número}
Exemplo: https://foreverlink.app/r/acme/42
O identificador da URL nunca muda (as peças impressas continuam a funcionar). Só muda o destino.
---
1. Criar a conta
- Abre Registo ou escolhe um plano em Preços.
- Starter ($19/mês, 500 IDs), Growth ($49/mês, 5.000) ou Scale ($99/mês, 25.000 + API). White Label é licença única de $999.
- Nome da organização. O identificador da URL (parte de cada URL impressa) é gerado aí e não se pode mudar depois.
- Email e palavra-passe. O 2FA (Google Authenticator / Authy) é opcional — ativas depois em Definições.
- Completa o checkout Paddle (é preciso cartão). Tens 15 dias de teste. Cancela antes e não pagas.
- Enquanto o billing não estiver
trialingouactive, os QR públicos não redirecionam.
---
2. Os primeiros 15 minutos
- Entra em
/login→ aterrass no Inventário. - Abre Gerar intervalo e cria IDs
1a100. - Abre Atribuir intervalo e põe um destino para
1–20, com uma etiqueta tipoloja-frente. - Abre o ID
#1e descarrega o QR SVG. Esse QR aponta para a URL ForeverLink, não para o site final. - Digitaliza. Deves cair no destino. Se vires “não configurado”, esse ID não tem destino
http(s)ou está inativo. - Muda o destino de
#1e digitaliza outra vez: o mesmo QR, página nova.
---
3. Inventário
Lista de todos os IDs da organização ativa.
- Pesquisa por número, etiqueta, destino ou notas.
- Filtros: todos / nunca clicados / sem destino / ativos / inativos.
- Ordenação: número ou cliques.
- Cada linha é uma URL pública:
/r/{org}/{número}.
Clica numa linha para editar esse ID.
---
4. Novo ID
Cria um único número de stock.
- Deixa o número vazio para o próximo livre, ou escreve um que ainda não exista.
- Opcional: destino (
https://…), etiqueta, notas, estado (ativo / inativo). - Guarda. Conta para o teto
max_linksdo plano.
Para um sticker avulso. Para uma tiragem, usa Gerar intervalo.
---
5. Gerar intervalo
Cria IDs vazios num intervalo inclusivo (exemplo: 1 a 1000).
- Números existentes são ignorados.
- Os novos saem ativos e sem destino.
- Não pode ultrapassar o teto do plano.
Faz isto antes de enviar ficheiros à gráfica.
---
6. Atribuir intervalo
Escreve o mesmo destino, etiqueta e estado num from–to que já existe.
Usos típicos: apontar 1–50 ao menu deste mês; relabelar o lote de um cliente; desligar uma campanha (inactive).
O destino tem de ser http:// ou https:// com host, máximo 2048 caracteres.
---
7. Editar um link
Abre o ID no inventário. Podes mudar destino, etiqueta, notas e estado.
- Destino vazio = a URL pública diz “não configurado”.
activeredireciona;inactivenão.- Vês cliques, últimos 14 dias e histórico.
Descarrega aqui o QR de produção (SVG). Imprime sempre esse QR, nunca um QR da URL final.
---
8. Importar e exportar CSV
Exportar descarrega o inventário (filtro opcional por etiqueta).
Importar atualiza linhas. Colunas típicas: number, target_url, label, notes, status. URLs inválidas são rejeitadas. Respeita max_links.
---
9. Cliques e histórico
Cada redirect público bem-sucedido incrementa click_count e um contador diário.
Alertas: IDs ativos sem destino; IDs nunca digitalizados.
O histórico guarda quem mudou o quê, com origem: manual, import, intervalo, API ou chat.
---
10. Equipa
| Função | Pode |
|---|---|
| Owner | Tudo, incluindo billing, PIN e chaves API |
| Admin | Definições, equipa, PIN, chaves API, inventário |
| Operator | Atribuir destinos, intervalos, importar |
Adiciona um membro em Equipa com palavra-passe temporária (mín. 12).
---
11. Definições
- Renomear o nome visível (não o identificador da URL).
- Ativar 2FA.
- Definir o PIN de suporte (6–8 dígitos). WhatsApp / Telegram / chat web pedem o identificador da URL ou o e-mail + este PIN uma vez.
- Rodar o PIN ou desvincular chats.
- Chaves API (só Scale e White Label): criar, copiar uma vez, revogar.
---
12. Faturação
15 dias de teste com cartão via Paddle. Redirects públicos funcionam em trialing, active, past_due ou whitelabel_setup. O bot não muda o cartão.
---
13. Tickets de suporte
Na app: Suporte. No chat: depois do PIN, pede ao bot para abrir um ticket.
---
14. Chat (WhatsApp, Telegram, web)
- Owner/admin define o PIN em Definições.
- Escreve ao bot ForeverLink.
- Indica o identificador da URL (ou o e-mail de um membro) e o PIN.
- Pede, por exemplo, “aponta o #12 para https://exemplo.com/menu”.
Nunca envies a palavra-passe do painel nem códigos 2FA.
---
15. API (Scale e White Label)
REST em {APP_URL}/api/v1. Cria uma chave em Definições. Mostra-se uma vez.
Authorization: Bearer fl_live_…
ou `X-API-Key: fl_live_…`
A chave já está ligada à **tua** organização.
| Scope | Permite |
| --- | --- |
| `account:read` | `GET /me`, `GET /stats` |
| `links:read` | `GET /links`, `GET /links/{number}` |
| `links:write` | criar / atualizar / intervalos |
| `tickets:write` | `GET/POST /tickets` |
**`GET /api/v1/me`** — identificador da URL, plano, limites, faturamento, uso.
**`GET /api/v1/links`** — `q`, `label`, `status`, `filter`, `page`, `per_page`, `sort`.
**`GET /api/v1/links/{number}`** — detalhe, cliques 14 dias, revisões.
**`POST /api/v1/links`**
{ "number": 42, "target_url": "https://exemplo.com", "label": "loja", "status": "active" }
**`PATCH /api/v1/links/{number}`** — qualquer subconjunto de `target_url`, `label`, `notes`, `status`.
**`POST /api/v1/links/assign-range`** — `{ "from": 1, "to": 50, "label": "abril", "target_url": "https://…", "status": "active" }`
**`POST /api/v1/links/generate-range`** — `{ "from": 1, "to": 500 }`
**`GET /api/v1/stats`** · **`GET/POST /api/v1/tickets`**
Erros: `401` chave inválida, `402` billing inativo, `403` plano/scope, `404` inexistente, `429` rate limit (60/min). Starter e Growth recebem `403`.
---
## 16. Porque um QR não redireciona
1. A URL impressa é `https://foreverlink.app/r/{org}/{número}`.
2. O ID existe e está `active`.
3. O destino é `http(s)` válido.
4. O billing está `trialing` / `active` / `past_due`.
---
## 17. White Label
Licença de software de $999. Depois do pagamento, preencha o formulário de configuração (domínio + notas de self-host). Corra no seu servidor, ou some SaaS alojado por +$50/mês. Inclui API, documentação e suporte de produto. Não é um projeto de instalação pago.
Acima de 25.000 IDs no Scale vende-se como **packs de 5.000 IDs** a $19/mês. Some no checkout ou em Faturação.
Precisas de uma pessoa? [Contacto](/contact) ou abre um ticket na app.