Skip to content

Commit 86304f0

Browse files
Merge branch 'master' into remove-data-lakes-beta-flag
2 parents d7ad3e0 + ca86749 commit 86304f0

File tree

8 files changed

+84
-89
lines changed

8 files changed

+84
-89
lines changed

src/_data/catalog/warehouse.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ items:
1818
description: >-
1919
The AWS S3 destination provides a more secure way to store data in your AWS S3 buckets.
2020
url: connections/storage/catalog/aws-s3
21-
status: PUBLIC_BETA
21+
status: PUBLIC
2222
logo:
2323
url: 'https://d3hotuclm6if1r.cloudfront.net/logos/amazon-s3-default.svg'
2424
mark:

src/config-api/index.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
title: Config API Overview
33
---
44

5+
> info "The Segment Public API: Beta Release"
6+
> The Segment Public API is available in Public Beta. This new API features more consistent endpoints, improved error handling and reporting, support for pagination, and more.
7+
>
8+
> See the [Segment Public API documentation](https://api.segmentapis.com/docs/){:target="_blank"} for more information.
9+
510
The Config API enables you to programmatically manage Segment workspaces, sources, destinations and more. With the API you can:
611

712
* List all your workspace Sources and Destinations to see how data flows through Segment

src/connections/destinations/catalog/actions-amplitude/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ Build your own subscriptions! Combine supported [triggers](/docs/connections/des
138138
- [Map User](#map-user)
139139
- [Group Identify User](#group-identify-user)
140140

141-
You can see the Segment event fields Amplitude accepts for each action in the Actions subscription set up page. Combine these
141+
You can see the Segment event fields Amplitude accepts for each action in the Actions subscription set up page.
142142

143143
### Log Event
144144

src/connections/spec/best-practices-identify.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ When you use the Segment Identify call with the Track call, you can start to bui
1212

1313
The Segment libraries generate an `anonymousId` for each user, even before you Identify them.
1414

15-
An `anonymousId` is a randomly generated 36 character string automatically assigned to a user on their first visit to your website or mobile application. You can use the `anonymousId` to link events performed by the user as they navigate around your website. When you track the `anonymousId` , you can attribute activities over multiple days to the same user by collecting all of the activities with that ID. If a user chooses to register for your site, or log in to your app, you can Identify them, and still include their `anonymousId` in the event payload along with the new `userId`.
15+
An `anonymousId` is a randomly generated 36 character string automatically assigned to a user on their first visit to your website or mobile application. You can use the `anonymousId` to link events performed by the user as they navigate around your website. When you track the `anonymousId`, you can attribute activities over multiple days to the same user by collecting all of the activities with that ID. If a user chooses to register for your site, or log in to your app, you can Identify them, and still include their `anonymousId` in the event payload along with the new `userId`.
1616

1717
> success ""
1818
> **Tip!** Only the Segment mobile and website libraries automatically generate an `anonymousId`. If you use Segment’s Server libraries, you must generate an `anonymousId` manually. It can be any pseudo-unique identifier, for example you might use a `sessionId` from a backend server.
@@ -23,7 +23,7 @@ Segment’s Identify method lets you link a user to their actions and record tra
2323

2424
Segment recommends that you use a unique user identifier that won’t change for your `userId`, for example a database ID from your organization’s internal systems. (See below)
2525

26-
When you make an [Identify call](/docs/connections/spec/identify) using Analytics.js, Segment saves the `userId` to the browser cookie, and writes all the user traits in local storage. If you’re using one of the Segment mobile libraries, the `userId` and and traits are stored in the device’s memory. This makes it possible to append the user’s data to all subsequent [Page calls](/docs/connections/sources/catalog/libraries/website/javascript#page) or [Track calls](/docs/connections/sources/catalog/libraries/website/javascript#track) for the user, so you can properly attribute those actions.
26+
When you make an [Identify call](/docs/connections/spec/identify) using Analytics.js, Segment saves the `userId` to the browser cookie, and writes all the user traits in local storage. If you’re using one of the Segment mobile libraries, the `userId` and traits are stored in the device’s memory. This makes it possible to append the user’s data to all subsequent [Page calls](/docs/connections/sources/catalog/libraries/website/javascript#page) or [Track calls](/docs/connections/sources/catalog/libraries/website/javascript#track) for the user, so you can properly attribute those actions.
2727

2828
If a user returns to your site after the [cookie expires](#id-expiration-and-overwriting), Analytics.js looks for an old ID in the user’s `localStorage`, and if one is found, sets it as the user’s ID again in a new cookie. If the user clears their cookies *and* `localStorage`, all of the IDs are removed. The user gets a completely new `anonymousId` when they next visit the page.
2929

@@ -34,7 +34,7 @@ A User ID should be a robust, static, unique identifier that you recognize a use
3434

3535
Ideally, the User ID could be a database ID. For example, if you’re using MongoDB it might be a row identifier and look something like `507f191e810c19729de860ea`. These can also be [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier)s that you generate somewhere in your application. You can also use identifiers that you get from other tools - such as Shopify or Braze - however this approach can lead to extra complexity in your systems.
3636

37-
Segment does **not** recommend using simple email addresses or usernames as as a User ID, as these can change over time. Segment recommends that you use static IDs instead, so the IDs *never* change. When you use a static ID, you can still recognize the user in your analytics tools, even if the user changes their email address. And even better, you can link your analytics data with your own internal database.
37+
Segment does **not** recommend using simple email addresses or usernames as a User ID, as these can change over time. Segment recommends that you use static IDs instead, so the IDs *never* change. When you use a static ID, you can still recognize the user in your analytics tools, even if the user changes their email address. And even better, you can link your analytics data with your own internal database.
3838

3939
> success ""
4040
> **Tip!** Even if you don't use an email address or a username as a User ID, you should still send them in the analytics payload as [traits](/docs/connections/spec/identify#traits).
@@ -130,7 +130,7 @@ The Segment ID cookie is set with a one year expiration. However, there are some
130130
- If you invoke any call before you set an `anonymousId`, Segment automatically sets the `anonymousId` first. This means if you explicitly set an `anonymousId`, you might give the user two `anonymousId`s or overwrite an existing one.
131131
- If you fetch the `anonymousId` using `analytics.user().anonymousId()` before one is set, Segment generates and sets an `anonymousId` rather than returning `null`.
132132
- If you call `analytics.identify()` with a `userId` that is different from the currently cached `userId`, this can overwrite the existing one and cause attribution problems.
133-
- If you generate a new `anonymousId` on a server library, and passing it from the server to the browser, this could overwrite the user's existing `anonymousId`.
133+
- If you generate a new `anonymousId` on a server library, and pass it from the server to the browser, this could overwrite the user's existing `anonymousId`.
134134

135135
> info ""
136136
> Remember, if a user has multiple devices, they can have different `anonymousId`s on each different device.

src/connections/storage/catalog/aws-s3/index.md

Lines changed: 50 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -39,63 +39,66 @@ To complete this section, you need access to your AWS dashboard.
3939

4040
1. Create a new S3 bucket in your preferred region. For more information, see Amazon's documentation, [Create your first S3 bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html){:target="_blank"}.
4141
2. Create a new IAM role for Segment to assume. For more information, see Amazon's documentation, [Creating a role to delegate permissions to an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html){:target="_blank"}.
42-
3. Attach the following trust relationship document. Be sure to add your Workspace ID to the `sts:ExternalId` field.
43-
```json
42+
1. When prompted to enter an Account ID, enter `595280932656`. (You cannot enter an ARN in this step. In step 4, you can update the `Principal` to a specific role after you create an IAM role.)
43+
2. Click the **Require External ID** checkbox.
44+
3. Enter your Segment Workspace ID in the **External ID** field.
45+
3. Attach the following policy to the IAM role created in step 2. Replace `<YOUR_BUCKET_NAME>` with the name of the S3 bucket you created in step 1.
46+
```json
4447
{
45-
   "Version": "2012-10-17",
46-
   "Statement": [
47-
     {
48-
       "Sid": "",
49-
       "Effect": "Allow",
50-
       "Principal": {
51-
         "AWS": "arn:aws:iam::595280932656:role/segment-s3-integration-production-access"
52-
       },
53-
       "Action": "sts:AssumeRole",
54-
       "Condition": {
55-
         "StringEquals": {
56-
           "sts:ExternalId": "<YOUR_WORKSPACE_ID>"
57-
         }
58-
       }
59-
     }
60-
   ]
61-
 }
48+
"Version": "2012-10-17",
49+
"Statement": [
50+
{
51+
"Sid": "PutObjectsInBucket",
52+
"Effect": "Allow",
53+
"Action": [
54+
"s3:PutObject",
55+
"s3:PutObjectAcl"
56+
],
57+
"Resource": "arn:aws:s3:::<YOUR_BUCKET_NAME>/segment-logs/*"
58+
}
59+
]
60+
}
6261
```
63-
4. Create and attach the following IAM policy to the role created in step 3 above. Replace `<YOUR_BUCKET_NAME>` with the name of the bucket you created in step 1 above.
62+
If you're using KMS encryption on your S3 bucket, add the following policy to the IAM role:
6463
```json
6564
{
66-
"Version": "2012-10-17",
67-
"Statement": [
68-
{
69-
"Sid": "PutObjectsInBucket",
70-
"Effect": "Allow",
71-
"Action": [
72-
"s3:PutObject",
73-
"s3:PutObjectAcl"
74-
],
75-
"Resource": "arn:aws:s3:::<YOUR_BUCKET_NAME>/segment-logs/*"
76-
}
77-
]
65+
"Version": "2012-10-17",
66+
"Statement": [
67+
{
68+
"Sid": "AllowKMS",
69+
"Effect": "Allow",
70+
"Action": [
71+
"kms:GenerateDataKey",
72+
"kms:Decrypt"
73+
],
74+
"Resource": "<YOUR_KEY_ARN>"
75+
}
76+
]
7877
}
7978
```
80-
If you're using KMS encryption on your S3 bucket, add the following policy to the IAM role:
81-
```json
79+
If you have server-side encryption enabled, see the [required configuration](#encryption).
80+
81+
4. Update `Principal` in the role’s trust relationship document to `arn:aws:iam::595280932656:role/segment-s3-integration-production-access`. Replace `<YOUR_WORKSPACE_ID>` with your Segment Workspace ID.
82+
``` json
8283
{
83-
"Version": "2012-10-17",
84-
"Statement": [
84+
"Version": "2012-10-17",
85+
"Statement": [
8586
{
86-
"Sid": "AllowKMS",
87-
"Effect": "Allow",
88-
"Action": [
89-
"kms:GenerateDataKey",
90-
"kms:Decrypt"
91-
],
92-
"Resource": "<YOUR_KEY_ARN>"
87+
"Sid": "",
88+
"Effect": "Allow",
89+
"Principal": {
90+
"AWS": "arn:aws:iam::595280932656:role/segment-s3-integration-production-access"
91+
},
92+
"Action": "sts:AssumeRole",
93+
"Condition": {
94+
"StringEquals": {
95+
"sts:ExternalId": "<YOUR_WORKSPACE_ID>"
96+
}
97+
}
9398
}
9499
]
95100
}
96-
```
97-
98-
If you have server-side encryption enabled, see the [required configuration](#encryption).
101+
```
99102

100103
### Create an IAM role using the AWS CLI
101104

@@ -128,7 +131,7 @@ To create an S3 IAM role, you must first install and configure the AWS CLI on yo
128131
}
129132
```
130133

131-
2. Navigate to the folder containing `trust-relationship-policy.json` and run the following command to create your IAM role and attach the trust relationship document, replacing `<YOUR_ROLE_NAME>` with the name you want to give this IAM role:
134+
2. Navigate to the folder containing `trust-relationship-policy.json` and run the following command to create your IAM role and attach the trust relationship document, replacing `<YOUR_ROLE_NAME>` with the name you want to give the IAM role:
132135

133136
``` python
134137
aws iam create-role --role-name <YOUR_ROLE_NAME> --assume-role-policy-document file://trust-relationship-policy.json --description "IAM role for Segment to assume (AWS S3 destination)"

src/personas/journeys/build-journey.md

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ title: Build a Journey
33
---
44
{% include content/plan-grid.md name="journeys" %}
55

6-
Use this guide to create a new Journey.
7-
86
## Before you begin
97

108
Verify that you've connected at least one source to your Personas space, with events streaming in.
@@ -19,9 +17,9 @@ For more information, see [Setting up your Sources](/docs/personas/quickstart/#s
1917
1. Add a name to describe the step, for example `New users`.
2018
2. Add inclusion conditions, or import conditions from an existing audience to define users who will enter the Journey.
2119
3. Check **Use historical data** to allow users who have already matched the entry criteria to enter the Journey. Otherwise, only users who meet the entry conditions after publication will enter the Journey.
22-
4. Click **Preview** to see the list of user who meet your criteria. Verify that you've defined the right conditions.
20+
4. Click **Preview** to see the list of users who meet your criteria. Verify that you've defined the right conditions.
2321
5. Click **Save**.
24-
4. Segment displays the entry condition on the Journey Builder canvas. It may take up to 2 minutes for Segment to estimate the number of users in the journey.
22+
4. Segment displays the entry condition on the Journey Builder canvas. It may take up to two minutes for Segment to estimate the number of users in the journey.
2523
5. Click **+** to add the next step and view available step types.
2624

2725
> info ""
@@ -36,7 +34,7 @@ If you select the **Use historical data** option, Segment queries all historical
3634
3735
## Available step types
3836

39-
Journeys provides 5 step types, which you can add after the entry condition.
37+
Journeys provides five step types, which you can add after the entry condition.
4038

4139
![Step types](images/journey_step-types.png)
4240

@@ -46,20 +44,20 @@ Journeys provides 5 step types, which you can add after the entry condition.
4644

4745
**Wait for duration** defines the length of time in minutes, hours, days, or weeks that a user must wait before moving to the next step.
4846

49-
**True/false split** divides the previous step's user group into 2 branches, based on Boolean logic against a defined condition. Users who satisfy the condition(s) move to the **True** branch. Otherwise, they move to the **False** branch. To enforce mutual exclusivity, Journeys evaluates true/false conditions when a user reaches the relevant step.
47+
**True/false split** divides the previous step's user group into two branches, based on Boolean logic against a defined condition. Users who satisfy the condition(s) move to the **True** branch. Otherwise, they move to the **False** branch. To enforce mutual exclusivity, Journeys evaluates true/false conditions when a user reaches the relevant step.
5048

5149
You can add Step Names to describe the users in the True and False branch.
5250

5351
![true/false split](images/journey_t-f-split.png)
5452

55-
**Multi-branch split** divides the group of users from the previous step into 2 or more branches based on conditions you define for each branch.
53+
**Multi-branch split** divides the group of users from the previous step into two or more branches based on each branch's defined conditions.
5654

57-
Define the number of branches you want to create. Then, add a **Wait for condition** step to define each branch's condition.
55+
Define the number of branches you want to create, then add a **Wait for condition** step to define each branch's condition.
5856

5957
> info ""
6058
> Journeys doesn't enforce mutual exclusivity in branch conditions. For more information about ensuring branch exclusivity, see [Best Practices](#).
6159
62-
**Send to Destinations** delivers information about the journey to the selected Destination. For more information, see [Send data to Destinations](/docs/personas/journeys/send-data)
60+
**Send to Destinations** delivers information about the Journey to the selected Destination. For more information, see [Send data to Destinations](/docs/personas/journeys/send-data)
6361

6462
## Cloning a Journey
6563

@@ -90,19 +88,9 @@ When you’ve finished creating your Journey, click **Save as Draft** in the bot
9088

9189
Keep the following considerations in mind when working with a published Journey:
9290

93-
- It may take up to 3 hours for Journeys to compute user counts after publication.
91+
- It may take up to three hours for Journeys to compute user counts after publication.
9492
- You can edit a Journey's name, description, and Destination steps.
9593
- You can't add, edit, or delete other steps in the Journey.
9694
- Once Journeys computes and displays user counts, you’ll see the list of users at each step of the Journey.
9795
- Click a user profile to see the Journey list to which they belong.
9896
- Journeys sends and updates data to Destinations in real-time.
99-
100-
## Edit name, description, and Destinations
101-
102-
### Edit name and description
103-
To edit your Journey name and description, navigate to the **Settings** tab of the Journey Overview.
104-
105-
### Edit destinations
106-
To edit Destinations, click **Edit Destinations** from the Journey Overview. You can add, edit, or delete connected Destinations within existing Send to Destinations steps.
107-
108-

0 commit comments

Comments
 (0)