telkit

Use case

SMS notifications to residents, staff and customers

A waterworks with a boil-water notice, a housing co-operative shutting off the water, a contractor calling in a crew at five in the morning. The job is the same every time: reach many mobile numbers fast, and know who got the message.

Last reviewed 14 October 2026

The problem

A notice sent from a private phone or a spreadsheet leaves no record. You do not know who got it, who replied, or what the send-out cost.

With telkit your system sends the notice as a campaign to a contact group or a list of numbers. Every message gets its own status, replies come back in a thread, and every message shows its price.

The services that do the job

Everything below is the SMS service. You use it from the dashboard or the API, with the same balance.
  • CampaignsOne text to a contact group or a list of up to 2,000 numbers, now or at a time you choose. Fields such as {{fornavn}} (first name) are filled in per recipient.
  • Contacts and groupsUpload your contacts from a CSV file and put them in groups. Each profile has its own contact list.
  • SenderSend from an approved sender name, from the reply number every profile starts with, or from a dedicated 8-digit number. Only the last two can receive replies.
  • Status and repliessms.status tells you whether a message was sent, delivered or failed. Replies arrive as sms.received, and a STOPP from a recipient arrives as sms.optedOut.

Example flows

Three notices we see often, step by step.

Boil-water notice from the waterworks

  1. The subscribers are contacts in a group, imported from a CSV file.
  2. The person on duty creates a campaign to the group, in the dashboard or from their own system.
  3. telkit prices the whole campaign before it starts. If the balance does not cover it, no messages go out.
  4. The status of each message reaches your webhook while the messages go out.

Calling in a shift

  1. The system sends one SMS per person from the profile's own number, with one Idempotency-Key per person.
  2. The employee replies JA or NEI (yes or no).
  3. The reply arrives as sms.received with the number and the text, and your system fills in the rota.

A planned water shut-off

  1. The housing co-operative knows the water goes off on Tuesday at nine.
  2. The campaign gets a time (scheduledAt) and waits at telkit.
  3. If the plan changes, you cancel the campaign. Messages that were not handed to the operator are not sent.

What the request looks like

A campaign to two numbers, and the event your webhook receives for each message.
POST /v1/campaignsbash
curl https://api.telkit.no/v1/campaigns \  -H "Authorization: Bearer $TELKIT_API_KEY" \  -H "Idempotency-Key: kokevarsel-2026-10-14" \  -H "Content-Type: application/json" \  -d '{    "profile": "vannverket",    "name": "Kokevarsel Storgata",    "text": "Kokevarsel for Storgata: kok alt drikkevann til nytt varsel. Hilsen Vannverket",    "recipients": [      {        "phone": "+4791234567"      },      {        "phone": "+4798765432"      }    ]  }'
With groupId instead of recipients, the campaign goes to every contact in the group with a phone number.
Webhook: sms.statusjson
{  "object": "event",  "id": "evt_…",  "type": "sms.status",  "api_version": "1",  "occurred_at": "2026-10-14T08:00:03Z",  "data": {    "eventId": "evt_…",    "mode": "live",    "profileId": "…",    "messageId": "…",    "to": "+4791234567",    "state": "delivered",    "units": 1,    "priceOre": 75,    "errorDesc": null  }}
state is sent, delivered or failed. priceOre is the price in øre (1/100 krone), excl. VAT.

What to watch out for

Notices and marketing follow different rules. The content of the message decides which one you are sending.
  • Section 15 of the Norwegian Marketing Control Act requires prior consent before a business sends marketing by SMS to private individuals. A boil-water notice or a road closure markets nothing.
  • Add an offer or a discount code to the notice and the message becomes marketing, and the consent rule then applies to the whole message.
  • A sender name cannot receive replies. If recipients should be able to answer, send from the reply number or a dedicated number.
  • Say who the notice is from in the text itself. An unknown number with no name in the text looks like fraud.
  • When someone replies STOPP, STOP or AVMELD, the profile cannot text that number again until the person replies START.

What it costs

You pay per SMS unit. One unit holds up to 160 characters, or 70 when the text has characters such as emoji. A longer text is split into several units.
SMS sent, per unit
NOK 0.75
SMS sent from a dedicated number, per unit
NOK 0.75
SMS received, per unit
NOK 0.75
Dedicated SMS number, setup
NOK 2,000
Dedicated SMS number, per month
NOK 490

A one-unit boil-water notice to 800 subscribers costs NOK 600 excl. VAT.

Prices exclude VAT.

Questions about SMS notifications

Do I need consent to send an operational notice?

The consent rule in section 15 of the Marketing Control Act covers marketing. A plain operational notice markets nothing. Mix in an offer and the message becomes marketing.

How many recipients can a campaign have?

Up to 2,000 per campaign. A number listed twice gets one message.

How do I know the message arrived?

Every message gets the status sent, delivered or failed. It arrives as sms.status at your webhook, and you see it in the log in the dashboard.

Can recipients reply to the notice?

Yes, when you send from the reply number or a dedicated number. The reply arrives as sms.received and lands in a thread in the dashboard. Nobody can reply to a sender name.

What happens if the balance does not cover the campaign?

It does not start. telkit prices every recipient before the start. If the balance, today's SMS limit or the profile's monthly limit cannot cover the whole campaign, no messages go out, and the answer says how many recipients would have fitted.

Read more about the services

Set up your notices

Register your company, upload your contacts and send the first notice to yourself.