# Communications foundations

Eight practice lessons with saved progress. Sign in using your existing Bird account.

## Your first email

A customer places an order. Give them a clear, personal confirmation, and know what happens after you send.

Personalize the order confirmation, then send it to the practice inbox.

- Send from your backend after an order is confirmed.
- Use template variables for details such as a name and order number.
- Accepted means Bird has received the request. Delivery happens later.

## Delivery & events

Accepted is the beginning of the story. Explore delivery, bounces, and complaints without reaching a real customer.

Run all three sandbox outcomes and inspect the event timeline.

- Recognized addresses at messagebird.dev select the sandbox outcome. There is no sandbox toggle.
- The sandbox exercises normal acceptance, events, and webhooks without external delivery.
- Simulated bounces do not write to Bird’s suppression list. Your app can still test its own response.

## Smarter SMS

Small changes to a message can change its encoding and segment count. Keep the meaning while making the message more efficient.

Fit the order update into one GSM-7 segment. Keep the order number and tracking link.

- GSM-7 supports 160 units in a single segment; concatenated segments hold 153 each.
- Characters outside GSM-7 change the message to UCS-2 encoding. A single segment holds 70 code units.
- Smart encoding can replace typographic look-alikes. It does not transliterate every alphabet or remove emoji.

## WhatsApp replies

Send a useful order update, then let the customer choose where to leave their delivery.

Send the practice template. Tap a reply on the phone and map it to the order.

- Approved templates support business-initiated messaging under the applicable WhatsApp rules.
- Buttons carry an identifier that your application can use when the reply arrives.
- Template approval and delivery in this lab are simulated. A real channel uses Meta’s approval process.

## Verify a customer

Verification is a small interaction with an important job: establish that someone controls the destination.

Send a practice code, check an incorrect code, then complete a valid verification.

- Creating a verification and successfully checking a code are separate steps.
- Invalid and expired codes need clear recovery paths.
- The code is visible in this practice device only. A real integration sends it to the recipient.

## Realtime updates

Your operations team changes an order. Your customer’s tracking screen should change with it.

Connect the customer screen, then publish an order-status update.

- Clients subscribe to channels to receive events.
- A disconnected client does not receive the next live event in this simplified lab.
- Private customer data requires an appropriate authorization model.

## Reliable webhooks

Events can arrive more than once. A trustworthy integration verifies the sender and processes each event appropriately.

Reject an invalid signature and prevent a replayed event from updating an order twice.

- Verify the signature against the raw body before trusting an event.
- Deduplicate using the webhook identifier. Handle ordering using event information.
- Acknowledge promptly and move longer work into a queue.

## Practical assessment

Build an order-notification workflow for a new scenario. Your results determine whether you pass.

Configure the workflow, run the assessment, and resolve any failing checks.

- This assessment checks the simulated workflow’s behavior.
- Complete all seven practice lessons before this assessment.
- Complete a connected learning path to earn a course completion certificate.